在ADF的MB中直接传参跳转到页面html:
String path = "pages/xtgl/utils/showPDF.html?fjzj=" + fjzj;
JSFUtils.openNewPage(JSFUtils.pageUrl(path));
/**
* 新url
* @param view
* @return null
* */
public static String pageUrl(String view){
FacesContext facesContext = getFacesContext();
ExternalContext externalContext = facesContext.getExternalContext();
String url =
((HttpServletRequest)externalContext.getRequest()).getRequestURL().toString();
StringBuffer newUrlBuffer = new StringBuffer();
newUrlBuffer.append(url.substring(0, url.lastIndexOf("faces/")));
newUrlBuffer.append(view);
return newUrlBuffer.toString();
}
/**
* @function 打开新的页面窗口。
* @param view
* @return null
*/
public static void openNewPage(String view) {
FacesContext context = FacesContext.getCurrentInstance();
StringBuilder script = new StringBuilder().append("window.open('").append(view).append("', '_blank', 'toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,width=800,height=600,top=100,left=100', true);");
ExtendedRenderKitService erks =
Service.getService(context.getRenderKit(),
ExtendedRenderKitService.class);
erks.addScript(context, script.toString());
// ExternalContext ectx = context.getExternalContext();
// try {
// ectx.redirect(url); //重定向
// } catch (IOException e) {
// e.fillInStackTrace();
// }
}
html页面中引入js也需要按照一定的顺序(先引入jQuery):
<script language="JavaScript" src="../../../js/jquery-1.7.2.js"></script>
<script language="JavaScript" src="../../../js/flexpaper/flexpaper.js"></script>
<script language="JavaScript" src="../../../js/flexpaper/flexpaper_handlers.js"></script>
--摘自档案管理系统的附件预览