`
wap
  • 浏览: 74326 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2+Tiles2开始着手

阅读更多

今天看了一天的Struts 2的资料文档,对Struts 2 简化了部署与减少代码量等更多优点,非常有兴趣去了解,可能的话,可以推广起来的。

读完官方自带的showcase的主配置和主代码框架,依稀的感觉到单论Struts2+Spring2+Hibernate3.2而言,还是能够把老经验顺手沾来直接使用的,就是说可以做到简单的升级到 2.0版本来。但是我们大量采用的tiles部份,目前我了解的较少,单从配置上来说,就已经发生了一些改变,其他文件方面倒是没有什么改变。

这是原Struts1在struts.xml文件当中配置的:tiles相关的配置部份:

xml 代码
  1. <plug-in className="org.apache.struts.tiles.TilesPlugin">  
  2.     <set-property property="definitions-config"  
  3.         value="/WEB-INF/config/tiles-defs.xml" />  
  4.     <set-property property="definitions-parser-validate"  
  5.         value="true" />  
  6.     <set-property property="moduleAware" value="true" />  
  7. </plug-in>  

在struts2当中明显不再采用struts1著名的plugin技术了,直接在web.xml中多了这样的配置:

xml 代码
  1. <listener>  
  2.         <listener-class>  
  3.             org.apache.struts2.tiles.StrutsTilesListener   
  4.         </listener-class>  
  5. </listener>  

然后直接就配置tiles.xml文件,如下:

xml 代码
  1. <!DOCTYPE tiles-definitions PUBLIC   
  2.         "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"   
  3.         "http://struts.apache.org/dtds/tiles-config_2_0.dtd">  
  4.   
  5. <tiles-definitions>  
  6.   
  7.     <definition name="showcase.index" template="/tiles/layout.jsp">  
  8.         <put-attribute name="title" value="Tiles Showcase"/>  
  9.         <put-attribute name="header" value="/tiles/header.jsp"/>  
  10.         <put-attribute name="body" value="/tiles/body.jsp"/>  
  11.     </definition>  
  12.   
  13.     <definition name="showcase.freemarker" template="/tiles/layout.jsp">  
  14.         <put-attribute name="title" value="Tiles/Freemarker Showcase"/>  
  15.         <put-attribute name="header" value="/tiles/header.jsp"/>  
  16.         <put-attribute name="body" value="/tiles/body.ftl"/>  
  17.     </definition>  
  18.   
  19. </tiles-definitions>  

目前看起来,struts2使tiles的应用更加简化和快捷了。单论tiles2而言,还是比较复杂用的,但是struts简化他的部署了。

以下是在struts2中必须有的与tiels2相关的文件,考贝到项目的lib目录就OK了。

struts2-tiles-plugin.jar、tiles-api-2.0.4.jar、tiles-core-2.0.4.jar、tiles-jsp-2.04.jar

后三个文件,从tiles.apache.org下载tiles工程。

过段时间,我详细写出一些较完整的应用例子。

分享到:
评论
9 楼 xiaopingmao 2008-12-18  
楼主要写一个struts2 + tiles的例子,和大家共享一下,谢谢啦!!!
8 楼 xiaopingmao 2008-12-18  
[18 15:47:06,531 ERROR] [http-8888-1] taglib.RoleSecurityTagSupport - Error executing tag: Attribute 'body' not found.
org.apache.tiles.TilesException: Attribute 'body' not found.


我的也出现了这个问题。怎么解决呀,希望高人帮助一下!!!!
7 楼 wangbing9577 2008-12-10  
to laorer  2008-04-10:
org.apache.struts2.tiles.StrutsTilesListener改为
org.apache.struts2.tiles.StrutsTilesListener
6 楼 careprad 2008-11-26  
struts2是坨屎TMD,搞个项目这配置那配置,tils
5 楼 wap 2008-05-08  
已经报了:
2008-04-18 11:19:57,375 ERROR [org.apache.tiles.jsp.taglib.RoleSecurityTagSupport] - Error executing tag: Attribute 'title' not found.

你用Role标签了吧?你加了一个title标签?
4 楼 lhbdir 2008-04-18  
请问报这个错误是什么原因呀!找了几天的原因了都没找到呀?
2008-04-18 11:19:57,375 ERROR [org.apache.tiles.jsp.taglib.RoleSecurityTagSupport] - Error executing tag: Attribute 'title' not found.
org.apache.tiles.TilesException: Attribute 'title' not found.
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:112)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.tiles.layout_jsp._jspx_meth_tiles_005fgetAsString_005f0(layout_jsp.java:100)
at org.apache.jsp.tiles.layout_jsp._jspService(layout_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2008-04-18 11:19:57,375 ERROR [org.apache.tiles.jsp.taglib.RenderTagSupport] - Error during rendering
javax.servlet.jsp.JspException: Error executing tag: Attribute 'title' not found.
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:80)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.tiles.layout_jsp._jspx_meth_tiles_005fgetAsString_005f0(layout_jsp.java:100)
at org.apache.jsp.tiles.layout_jsp._jspService(layout_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.tiles.TilesException: Attribute 'title' not found.
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:112)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
... 31 more
3 楼 laorer 2008-04-10  
java.lang.ClassNotFoundException: org.apache.tiles.listener.TilesListener

我出现了这个错误,正在找,虽然报了 classnotfoundException , 但相关的jar文件都在lib目录下,所以有点闷
2 楼 beck 2007-11-04  
如果写:
<definition name="test " extends="showcase.index"">   
   <put-attribute name="title" value="test"/>   
   <put-attribute name="header" value="/tiles/header2.jsp"/>   
    <put-attribute name="body" value="/tiles/body2.jsp"/>   
</definition>

它继承了showcase.index
然后在header2.jsp或者在body2.jsp中取action中传过来的参数,取不到,不知各位有没有发现这样的问题?
1 楼 tczengjin 2007-08-18  
<listener>  
        <listener-class>  
            org.apache.struts2.tiles.StrutsTilesListener   
        </listener-class>  
</listener> 

请问当你这样配置的时候没出现严重: Error listenerStart错误吗??应用无法加载,请问如何解决的??

相关推荐

Global site tag (gtag.js) - Google Analytics