2006年2月9日 #
目前的功能有:信息發(fā)布、導(dǎo)航菜單、欄目維護(hù)、文章維護(hù)、后臺(tái)登錄,完成了Tiles的組裝,首頁靜態(tài)頁面的布局分割。現(xiàn)在美工方面進(jìn)一步加工一下,一個(gè)文章發(fā)布系統(tǒng)已具雛形,尚且叫它v0.1版吧:)
另外需求稿方面已經(jīng)進(jìn)展到v0.7版本,現(xiàn)在這個(gè)剛有點(diǎn)形狀的文章發(fā)布系統(tǒng)是整個(gè)大系統(tǒng)的一小部分,不過功能雖少,但主要收獲是解決了一些JSF方面經(jīng)常遇到的問題。
上面這行在用sun-ri的應(yīng)用中不會(huì)報(bào)錯(cuò)
但在MyFaces中就會(huì)報(bào)錯(cuò):
原因就出在id="" 去掉就會(huì)好了
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: empty expr javax.faces.webapp.FacesServlet.service(FacesServlet.java:121) org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) com.bizcms.view.utils.SecurityFilter.doFilter(Unknown Source)
root cause
javax.faces.FacesException: empty expr org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421) org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:233) org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:219) org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) com.bizcms.view.utils.SecurityFilter.doFilter(Unknown Source)
一、Action Controller的Action方法中手工獲取請求信息
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) context.getRequest();
String email = request.getParameter("form2:email");
二、保護(hù)/下面的jsp文件不被直接訪問
在web.xml中加入:
<security-constraint>
<display-name>
Prevent access to raw JSP pages that are for JSF pages.
</display-name>
<web-resource-collection>
<web-resource-name>Raw-JSF-JSP-Pages</web-resource-name>
<!-- Add url-pattern for EACH raw JSP page -->
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/login.jsp</url-pattern>
......
</web-resource-collection>
<auth-constraint>
<description>No roles, so no direct access</description>
</auth-constraint>
</security-constraint>
三、加載國際化資源文件
<f:view locale="#{facesContext.externalContext.request.locale}">
<f:loadBundle basename="messages" var="msgs"/>
/WEB-INF/classes目錄下,放messages_cn.properties,message_en.properties.....
待續(xù)。。。