JPractice

JSF+Spring+Hibernate+MySQL 开发商务平台实践

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks

2006年2月16日 #

在JSF中,用Tiles或jsp:include将其他页包含进来的时候,被包含的页面中,所有静态HTML代码都要用<f:verbatim></f:verbatim>括起来,否则就会出现布局错位的问题,真是痛苦!JSF的这个弊端不知道要到什么版本才行解决!
posted @ 2006-03-09 17:55 JPractice 阅读(517) | 评论 (0)编辑 收藏

JSF的东西本来就不好搞,加上Tiles就更麻烦了,特别是在页面格式的布局方面,经常出现一些莫名其妙的东西,花了不是时间,现在还没有完全解决,但基本功能已经可以进行测试了:
目前的功能有:信息发布、导航菜单、栏目维护、文章维护、后台登录,完成了Tiles的组装,首页静态页面的布局分割。现在美工方面进一步加工一下,一个文章发布系统已具雏形,尚且叫它v0.1版吧:)

另外需求稿方面已经进展到v0.7版本,现在这个刚有点形状的文章发布系统是整个大系统的一小部分,不过功能虽少,但主要收获是解决了一些JSF方面经常遇到的问题。


posted @ 2006-03-08 16:11 JPractice 阅读(300) | 评论 (1)编辑 收藏

<h:outputLabel id="" value="#{category.name}" />

上面这行在用sun-ri的应用中不会报错
但在MyFaces中就会报错:
原因就出在id="" 去掉就会好了

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)
posted @ 2006-02-18 23:55 JPractice 阅读(936) | 评论 (2)编辑 收藏

一、Action Controller的Action方法中手工获取请求信息
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) context.getRequest();
String email = request.getParameter("form2:email");

二、保护/下面的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.....

待续。。。

posted @ 2006-02-16 16:22 JPractice 阅读(429) | 评论 (0)编辑 收藏