《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

1.安装sitemesh插件

与整合其他框架类似,struts2与sitemesh框架的整合也使用了插件方式进行管理。将struts2-sitemesh-plugin-2.0.6.jar文件复制到WEB-INF/lib下,为了整合sitemesh框架,必须在web.xml中配置sitemesh过滤器,让该核心过滤器来过滤所有的用户请求。但我们知道,struts2的所有值一旦访问该stack context或ValueStack后,里面对应的数值将会被清除掉,如果先使用了struts2的FilterDispather来过滤用户请求,则sitemesh的过滤器将无法取得Stack context或者ValueStack中的数据
为了解决这个问题,struts2提供了ActionContextCleanUp类,在struts2的架构中,标准的过滤器一般以ActionContextCleanUp开始,后面跟着其他需要的过滤器,最后,由FilterDispatcher来处理请求,FilterDispatcher通常是将请求传递给ActionMapper
ActionContextCleanUp的一个重要作用是整合sitemesh页面装饰器,它通知FilterDispatcher在正确的时间清除ActionContext中的请求数据,所以正确的排序如下:
(1)ActionContextCleanUp过滤器
(2)SiteMesh核心过滤器
(3)FilterDispatcher过滤器

web.xml

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<?xmlversion="1.0"encoding="GBK"?>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<web-appid="jsf"version="2.4"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发xmlns
="http://java.sun.com/xml/ns/j2ee"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发xsi:schemaLocation
="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--��struts2�ܹ��У���׼�Ĺ�����tһ����ActionContextCleanUp��ʼ���������������Ҫ�Ĺ����������FilterDispatcher��������-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>struts-cleanup</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>sitemesh</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>struts</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>struts-cleanup</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<url-pattern>/*</url-pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>sitemesh</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<url-pattern>/*</url-pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<filter-name>struts</filter-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<url-pattern>/*</url-pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</filter-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<listener>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</listener>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<listener>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</listener>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--JavaServerFacesServletConfiguration,notuseddirectly-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<servlet>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<servlet-name>faces</servlet-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<load-on-startup>1</load-on-startup>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</servlet>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--JavaServerFacesServletMapping,notcalleddirectly-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<servlet-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<servlet-name>faces</servlet-name>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<url-pattern>*.action</url-pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</servlet-mapping>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</web-app>

spring配置文件

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<?xmlversion="1.0"encoding="GBK"?>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--指定Spring配置文件的Schema信息-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<beansxmlns="http://www.springframework.org/schema/beans"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发xsi:schemaLocation
="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<beanid="bs"class="lee.service.BookService"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</beans>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

sitemesh装饰配置文件

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<?xmlversion="1.0"encoding="GBK"?>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decoratorsdefaultdir="/decorators">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--在excludes元素下指定的页面将不会由SiteMesh来装饰-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<excludes>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<pattern>/exclude.jsp</pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<pattern>/exclude/*</pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</excludes>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--创建一个名为main的装饰器,该装饰器页面为main.jsp,
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发用于装饰pattern指定的URL的所有页面
-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decoratorname="main"page="main.jsp">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<pattern>/*</pattern>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</decorator>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--定义一个装饰器,但该装饰器默认不装饰任何页面-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decoratorname="panel"page="panel.jsp"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</decorators>

装饰器decorators/main.jsp

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<%...@pagecontentType="text/html;charset=GBK"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@tagliburi="http://www.opensymphony.com/sitemesh/decorator"prefix="decorator"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@tagliburi="http://www.opensymphony.com/sitemesh/page"prefix="page"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<title><decorator:titledefault="SiteMesh的装饰器页"/></title>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<linkhref="decorators/main.css"rel="stylesheet"type="text/css">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decorator:head/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tablewidth="100%"height="100%">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdvalign="top">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!--引入一个页面,临时指定所用的装饰器-->
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<page:applyDecoratorpage="/book.html"name="panel"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<page:applyDecoratorpage="/link.html"name="panel"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdwidth="100%">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tablewidth="100%"height="100%">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdid="pageTitle">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decorator:title/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdvalign="top"height="100%">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decorator:body/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdid="footer">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<b>被包含的内容</b><br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发SithMesh提供页面装饰支持
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</table>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</table>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</html>

装饰器decorators/panel.jsp

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<%...@pagecontentType="text/html;charset=GBK"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@tagliburi="http://www.opensymphony.com/sitemesh/decorator"prefix="decorator"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<p>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tablewidth=250border=0cellpadding=0cellspacing=0>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<thclass="panelTitle">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decorator:titledefault="小面板页面"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</th>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<tdclass="panelBody">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<decorator:body/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</td>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</tr>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</table>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</p>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

装饰器样式decorators/main.css

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发body,td,p{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发font:normalx-smallverdana,arial,helvetica,sans-serif;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发.panelTitle{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发background-color:#003399;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发color:#eeeeee;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发font-weight:bold;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-color:#3366ff#000033#000033#3366ff;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-width:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-style:solid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发padding:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发.panelBody{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发background-color:#eeeeee;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-color:black;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-width:0111;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-style:solid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发padding:2;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发#pageTitle{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发background-color:#003399;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发color:#eeeeee;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发font-weight:bold;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发font-size:large;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-color:#3366ff#000033#000033#3366ff;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-width:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-style:solid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发padding:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发text-align:center;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发#footer{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发background-color:#eeeeee;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发font-size:9pt;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发text-align:center;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发color:black;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-color:#666666#cccccc#cccccc#666666;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-width:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发border-style:solid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发padding:1;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

被装饰页面book.html

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<title>作者图书</title>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<center>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发Spring2.0宝典
<br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发轻量级J2EE企业应用实战
<br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发基于J2EE的Ajax宝典
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</center>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</html>

被装饰页面link.html

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<title>友情链接</title>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<center>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<ahref="http://www.nit-pro.org">NIT-PRO考试中心</a><br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<ahref="http://www.oneedu.cn">新东方IT培训中心</a><br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<ahref="http://www.oneedu.cn">东方标准人才服务公司</a><br>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</center>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</html>

JSF功能页面list.jsp

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<%...@pagelanguage="java"contentType="text/html;charset=GBK"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@taglibprefix="f"uri="http://java.sun.com/jsf/core"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@taglibprefix="h"uri="http://java.sun.com/jsf/html"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<title>Struts2+MyFaces+Spring整合</title>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:view>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h3>Struts2+MyFaces+Spring整合</h3>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h3>列出所有图书</h3>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:dataTablevalue="#{action.allBook}"var="b"style="text-align:center;width:500px"border="1">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:facetname="header">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书ID"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</f:facet>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputLinkvalue="edit.action">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:paramname="editId"value="#{b.id}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="#{b.id}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:outputLink>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:facetname="header">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书名"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</f:facet>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="#{b.name}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:facetname="header">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书简介"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</f:facet>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="#{b.desc}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:column>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:dataTable>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<p>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputLinkvalue="edit.action">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="新增图书"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:outputLink>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</p>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</f:view>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

JSF功能页面edit.jsp

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<%...@pagelanguage="java"contentType="text/html;charset=GBK"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@taglibprefix="f"uri="http://java.sun.com/jsf/core"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<%...@taglibprefix="h"uri="http://java.sun.com/jsf/html"%>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<html>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<title>Struts2+MyFaces+Spring整合</title>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</head>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:view>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h3>Struts2+MyFaces+Spring整合</h3>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h3>修改/保存图书</h3>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:form>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:inputHiddenvalue="#{action.editId}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:panelGridcolumns="3">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书ID"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:inputTextid="id"size="5"value="#{action.currentBook.id}"required="true"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:messagefor="id"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书名:"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:inputTextid="name"size="30"value="#{action.currentBook.name}"required="true">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:validateLengthminimum="2"maximum="100"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:inputText>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:messagefor="name"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:outputTextvalue="图书描述:"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:inputTextid="desc"size="30"value="#{action.currentBook.desc}"required="true">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<f:validateLengthminimum="2"maximum="100"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:inputText>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:messagefor="desc"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:panelGrid>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<h:commandButtonvalue="保存"action="#{action.save}"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<br/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</h:form>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</f:view>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</body>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</html>

struts.xml

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发<?xmlversion="1.0"encoding="GBK"?>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<!DOCTYPEstrutsPUBLIC
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发"http://struts.apache.org/dtds/struts-2.0.dtd"
>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<struts>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<constantname="struts.custom.i18n.resources"value="messageResource"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<constantname="struts.i18n.encoding"value="GBK"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<packagename="jsf"extends="jsf-default">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<interceptors>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<interceptor-stackname="jsfFullStack">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<interceptor-refname="params"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<interceptor-refname="basicStack"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<interceptor-refname="jsfStack"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</interceptor-stack>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</interceptors>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<default-interceptor-refname="jsfFullStack"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</package>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<packagename="lee"extends="jsf">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<actionname="list"class="lee.action.BookAction">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<resultname="success"type="jsf"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</action>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<actionname="edit"class="lee.action.BookAction">
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<resultname="success"type="jsf"/>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
<resultname="list"type="redirect">list.action</result>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</action>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</package>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
</struts>
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

BookService

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发packagelee.service;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
importjava.util.*;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
importlee.model.Book;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicclassBookService
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
privateSet<Book>bookDb;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicBookService()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发bookDb
=newHashSet<Book>();
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发bookDb.add(
newBook(1,"Spring2.0宝典","全面介绍了Spring各个知识点"));
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发bookDb.add(
newBook(2,"轻量级J2EE企业应用实战","介绍实际企业的J2EE开发过程"));
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicSet<Book>getAllBook()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnbookDb;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicBookgetBookById(intid)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
for(Bookb:bookDb)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
if(b.getId()==id)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnb;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnnull;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicvoidaddBook(Bookb)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发bookDb.add(b);
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

Book

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发packagelee.model;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicclassBook
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
privateintid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
privateStringname;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
privateStringdesc;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicBook()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicBook(intid,Stringname,Stringdesc)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.id=id;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.name=name;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.desc=desc;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicvoidsetId(intid)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.id=id;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicintgetId()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnthis.id;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicvoidsetName(Stringname)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.name=name;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicStringgetName()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnthis.name;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicvoidsetDesc(Stringdesc)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
this.desc=desc;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicStringgetDesc()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnthis.desc;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicinthashCode()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnid;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
publicbooleanequals(Objecttarget)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
if(targetinstanceofBook)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发Bookb
=(Book)target;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
if(b.getId()==this.id)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
...{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returntrue;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
returnfalse;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

BookAction

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发packagelee.action;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发importcom.opensymphony.xwork2.ActionSupport;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发importjava.util.*;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发importlee.model.Book;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发importlee.service.BookService;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicclassBookActionextendsActionSupport
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发privateBookcurrentBook;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发privateinteditId;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发privateBookServicebs;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicvoidsetBs(BookServicebs)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发this.bs=bs;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicvoidsetCurrentBook(BookcurrentBook)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发this.currentBook=currentBook;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicBookgetCurrentBook()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发//如果editId请求参数不为空,则currentBook也不为空
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发if(editId!=0)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发this.currentBook=bs.getBookById(editId);
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发elseif(currentBook==null)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发currentBook=newBook();
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发returnthis.currentBook;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicvoidsetEditId(inteditId)
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发this.editId=editId;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicintgetEditId()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发returnthis.editId;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicList
<Book>getAllBook()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发List
<Book>result=newArrayList<Book>();
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发for(Bookb:bs.getAllBook())
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发result.add(b);
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发returnresult;
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发publicStringsave()
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发{
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发bs.addBook(currentBook);
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发return"list";
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发}

struts.properties

struts.i18n.encoding=gb2312
struts.objectFactory.spring.autoWire=type

如果web应用是test.,则运行

http://localhost:8080/test/list.action 则会出现如下被装饰过的页面

《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发

版权声明:本文为博主原创文章,未经博主允许不得转载。