- 浏览: 1505097 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
Struts 2.1 Tags
最近学习 Struts 2.1 Tags 做了些笔记,贴出来大家一起学习下,希望大家多多交流。
别的都不说了,我就贴代码,代码里注释比较详细,呵呵。
文件目录,如下:
index.jsp 代码
Java代码
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2. <%@page import="com.rao.bean.Sex"%>
3. <%@ taglib prefix="s" uri="/struts-tags"%>
4. <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
6. <html>
7. <head>
8. <title>My page</title>
9. <s:head theme="xhtml"/>
10. <sx:head parseContent="true"/>
11. </head>
12.
13. <body>
1. Struts 2.1 Tags
1. 一、控制标签<br/><hr size="3" color="red">
1. #、if /elseif/ else @用于逻辑判断<br/>
2. <s:set name="bir" value="-12"></s:set>
3. <s:if test="#bir>=180 || #bir<0">
4. 你是何方妖怪?
5. </s:if>
6. <s:elseif test="#bir<=18 && #bir>=0">
7. 未成年人不能进入!
8. </s:elseif>
9. <s:elseif test="#bir<=60 && #bir>=18">
10. 您已经成年!
11. </s:elseif>
12. <s:else>
13. 您已经老了!
14. </s:else>
15. <br/>--------------------------------------------------------------<br/>
1. #、append @用于将多个集合合并<br/>
2. <s:set name="appList1" value="{'111','222','333','444'}"></s:set>
3. <s:set name="appList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>
4. <s:append var="newAppList">
5. <s:param value="appList1"></s:param>
6. <s:param value="appList2"></s:param>
7. </s:append>
8. <s:iterator value="#newAppList">
9. <s:property/> |
10. </s:iterator>
11. <br/>--------------------------------------------------------------<br/>
1. #、generator <br/>
2. generator标签,该标签可以将指定字符串按指定分隔符分割成多个字串。生成的多个字串可以用iterator标签进行迭代输出。可以这么理解:generator标签将一个字符串转换成一个List集合。在该标签体内,整个临时生成的集合将为Valuestack的顶端,但一旦该标签结束,生成的集合将被移除Valuestack。generator标签有如下几个属性:
3. <br/>
4. 1、count属性:指定生成集合中元素的总数。可选属性。<br/>
5.
6. 2、val属性:必填属性,指定被解析的字符串。<br/>
7.
8. 3、separator属性:这是一个必填属性,指定用于分割字符串的分隔符。<br/>
9.
10. 4、converter属性:可选属性,指定一个转换器,转换器负责将生成的集合中的每个字符串转换成对象,通过这个转换器可以将一个含有分隔符的字符串解析成对象的集合。转换器必须一个继承org.apache.struts2.util.IteratorGenerator.Converter的对象。
11. <br/>
12. 5、var属性,可选属性。如果指定了该属性,则将生成的集合保存在Stack Context中。如果不指定该属性,则将生成的集合放入ValueStack的顶端,该标签一结束,生成的集合就被移除。该属性也可替换成id。
13. <br/>
14. <s:generator val="'aaa,bbb,ccc,ddd'" separator="," count="2">
15. <s:iterator>
16. <s:property/>
17. </s:iterator>
18. </s:generator><br/>
19.
20. <br/>--------------------------------------------------------------<br/>
1. #、iterator 用于迭代数据<br/>
2. <s:set name="iterList" value="{'aaa','bbb','ccc','ddd'}"></s:set>
3. <table border="1">
4. <tr>
5. <td> 索引 </td>
6. <td> 值 </td>
7. <td> 奇? </td>
8. <td> 偶? </td>
9. <td> 首? </td>
10. <td> 尾? </td>
11. <td> 当前迭代数量 </td>
12. </tr>
13.
14. <s:iterator value="{'aaa','bbb','ccc','ddd','eee','fff'}" begin="1" status="s">
15. <tr bgcolor="<s:if test="#s.odd">pink</s:if>">
16. <td><s:property value="#s.index"/></td>
17. <td><s:property/></td>
18. <td><s:property value="#s.even"/></td>
19. <td><s:property value="#s.odd"/></td>
20. <td><s:property value="#s.first"/></td>
21. <td><s:property value="#s.last"/></td>
22. <td><s:property value="#s.count"/></td>
23. </tr>
24. </s:iterator>
25. </table>
26.
27.
28. <br/>--------------------------------------------------------------<br/>
1. #、merge @和类似:用于将多个集合合并<br/>
2. <s:set name="merList1" value="{'111','222','333','444'}"></s:set>
3. <s:set name="merList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>
4. <s:append var="newMerList">
5. <s:param value="merList1"></s:param>
6. <s:param value="merList2"></s:param>
7. </s:append>
8. <s:iterator value="#newMerList">
9. <s:property/> |
10. </s:iterator>
11. <br/>--------------------------------------------------------------<br/>
1. #、sort @用于排序<br/>
2. <s:bean var="myComparator" name="com.rao.comparator.MyComparator"></s:bean>
3. <s:sort comparator="#myComparator" source="{1,45,56,0,345,3}">
4. <s:iterator>
5. <s:property/>,
6. </s:iterator>
7. </s:sort>
8. <br/>--------------------------------------------------------------<br/>
1. #、subset @用户截取集合中的子集; 注:decider:可选属性,指定由开发者自己决定是否选中该元素.
2. <br/>
3. <s:set name="subList" value="{'@@@','***','&&&','###'}"></s:set>
4. <s:subset source="#subList" start="1" count="2">
5. <s:iterator>
6. <s:property/>,
7. </s:iterator>
8. </s:subset>
9. <br/>--------------------------------------------------------------<br/>
1. 二、数据标签<br/>
2. <hr size="3" color="red">
1. #、action @用于导入一个Action<br/>
2. 使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和namespace.如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:
3. <br/>
4. id: 可选属性,作为该Action的引用ID <br/>
5.
6. name:必选属性,指定调用Action <br/>
7.
8. namespace:可选属性,指定该标签调用Action所属namespace <br/>
9.
10. executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含. <br/>
11.
12. ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.<br/>
13.
14. s:param是以request方式的值的,而不是以参数传值,所以request.getParameter("")会获取不到值,通过request.getAttribute("")方式可以获取<br/>
15.
16. <s:action name="tagsAction1" ignoreContextParams="true" executeResult="true" namespace="/com/rao">
17. <s:param name="userName" value="'三毛'"></s:param>
18. </s:action>
19.
20. <br/>--------------------------------------------------------------<br/>
1. #、bean @用于导入一个javaBean,相当于:jsp:useBean 标签<br/>
2. <s:bean name="com.rao.bean.UserBean" var="user">
3. <s:param name="userId" value="1001"></s:param>
4. <s:param name="userName" value="'张三'"></s:param>
5. </s:bean>
6. userId:<s:property value="#user.userId"/><br>
7. userName:<s:property value="#user.userName"/>
8. <br/>--------------------------------------------------------------<br/>
1. #、date @用于格式化日期<br/>
2. <s:set name="dt" value="new java.util.Date()"></s:set>
3. 当期系统时间是:<s:date name="dt" format="yyyy-MM-dd HH:ss:mm"/>
4. <br/>--------------------------------------------------------------<br/>
1. #、debug @用于调试程序,让开发人员一目了然的知道当前请求、值栈、栈中的各项参数<br/>
2. <s:debug/>
3. <br/>--------------------------------------------------------------<br/>
1. #、i18n @用于访问国际化资源文件的内容<br/>
2. 1.默认访问全局范围内的资源文件;
3. <br>
4. <s:text name="welcome">
5. <s:param>三毛</s:param>
6. <s:param>学习</s:param>
7. </s:text>
8.
9. <hr>
10. 2.访问包范围内的资源文件;
11. <br>
12. <s:i18n name="com/rao/action/package">
13. <s:text name="welcome">
14. <s:param>三毛</s:param>
15. <s:param>学习</s:param>
16. </s:text>
17. </s:i18n>
18. <hr>
19. 3.访问Action范围内的资源文件;
20. <br>
21. <s:i18n name="com/rao/action/GlobalNativeAction">
22. <s:text name="welcome">
23. <s:param>三毛</s:param>
24. <s:param>学习</s:param>
25. </s:text>
26. </s:i18n>
27. <br/>--------------------------------------------------------------<br/>
1. #、include @用于导入一个jsp文件,等同于:jsp:include标签<br/>
2. <s:include value="success.jsp"></s:include>
3. <br/>--------------------------------------------------------------<br/>
1. #、param @用于给指定参数设置值<br/>
2. <s:bean name="com.rao.bean.UserBean" var="user">
3. <s:param name="userId" value="1001"></s:param>
4. <s:param name="userName" value="'张三'"></s:param>
5. </s:bean>
6. userId:<s:property value="#user.userId"/><br>
7. userName:<s:property value="#user.userName"/>
8. <br/>--------------------------------------------------------------<br/>
1. #、property @输出结果,很像EL表达式,但是可以依托于OGNL表带是很强大<br/>
2. 同上
3. <br/>--------------------------------------------------------------<br/>
1. #、push @该标签可以把程序员在ActionContext中引用的对像压入valuestack中,为以后访问对象提供了方便<br/>
2. <s:push value="#request.user"><s:property value="userName"/></s:push>
3. <br/>--------------------------------------------------------------<br/>
1. #、set @用户声明对象或属性<br/>
2. <s:set name="uName" value="#request.user.userName"></s:set>
3. <s:property value="#uName"/>,你好啊!
4. <br/>--------------------------------------------------------------<br/>
1. #、text @用户获取国际化资源文件的内容<br/>
2. 请参考 il8n标签
3. <br/>--------------------------------------------------------------<br/>
1. #、url @用于组拼一个请求路径<br/>
2.
3. <s:url var="url1" action="MyAction" method="add">
4. <s:param name="id" value="%{23}"></s:param>
5. <s:param name="name" value="%{'tom'}"></s:param>
6. </s:url>
7. <s:property value="#url1"/>
8. <br/>
9. 注意:<br/>
10. <s:set name="myurl" value="'http://www.baidu.com'"></s:set>
11. value以字符处理: <s:url value="#myurl"></s:url><br>
12. value明确指定以ognl表达式处理: <s:url value="%{#myurl}"></s:url>
13.
14. <br/>--------------------------------------------------------------<br/>
1. 三、UI标签<br/>
2. <hr size="3" color="red">
3. <s:form>
1. #、checkboxlist @复选框列表<br>
2.
3. 1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
4. name:checkboxlist的名字<br>
5. list:checkboxlist要显示的列表<br>
6. value:checkboxlist默认被选中的选项,checked=checked<br>
7. <s:checkboxlist theme="simple" name="checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" ></s:checkboxlist>
8. <br>
9.
10. 2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
11. name:checkboxlist的名字<br>
12. list:checkboxlist要显示的列表<br>
13. listKey:checkbox 的value的值<br>
14. listValue:checkbox 的lablel(显示的值)<br>
15. value:checkboxlist默认被选中的选项,checked=checked<br>
16. <s:checkboxlist theme="simple" name="checkbox2" list="#{1:'上网',2:'看书',3:'爬山',4:'游泳',5:'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" ></s:checkboxlist>
17.
18. <br/>--------------------------------------------------------------<br/>
1. #、combobox <br/>
2.
3. <s:combobox theme="simple" label="选择你喜欢的颜色" name="colorNames" headerValue="------请选择------" headerKey="1" list="{'红','橙','黄','绿','青','蓝','紫'}" />
4. <br/>--------------------------------------------------------------<br/>
1. #、radio @单选框<br/>
2.
3. <%
4. Sex sex1 = new Sex(1,"男");
5. Sex sex2 = new Sex(2,"女");
6. List<Sex> list = new ArrayList<Sex>();
7. list.add(sex1);
8. list.add(sex2);
9. request.setAttribute("sexs",list);
10. %>
11. 这个与checkboxlist差不多;<br>
12. 1>.如果集合为javabean:<s:radio theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:radio><br>
13. 2>.如果集合为list:<s:radio theme="simple" name="sexList" list="{'男','女'}"></s:radio><br>
14. 3>.如果集合为map:<s:radio theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:radio><br>
15. <hr>
16. <br/>--------------------------------------------------------------<br/>
1. #、select @下拉列表框<br/>
2.
3. 这个与s:checkboxlist差不多;<br>
4. 1>.如果集合为javabean:<s:select theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:select><br>
5. 2>.如果集合为list:<s:select theme="simple" name="sexList" list="{'男','女'}"></s:select><br>
6. 3>.如果集合为map:<s:select theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:select><br>
7.
8. <br/>--------------------------------------------------------------<br/>
1. #、doubleselect @级联菜单 <br/>
2.
3. <!-- 可以用直接指定,当然也可以跟数据库绑定的 -->
4. <s:set name="proviList" value="{'江西省','湖北省'}"></s:set>
5. <s:set name="jxList" value="{'南昌市','赣州市','九江市','上饶市','鹰潭市'}"></s:set>
6. <s:set name="hbList" value="{'武汉市','恩施市','十堰市','荆州市','襄樊市'}"></s:set>
7. <s:doubleselect theme="simple" name="provi" doubleList="top=='江西省' ? #jxList : #hbList" list="#proviList" doubleName="city"></s:doubleselect>
8. <br/>--------------------------------------------------------------<br/>
1. #、optiontransferselect <br/>
2. <s:optiontransferselect theme="simple" label="change" name="abc" doubleList="{'111','222','333','444'}" list="{'aaa','bbb','ccc','ddd'}" doubleName="number"></s:optiontransferselect>
3. <br/>--------------------------------------------------------------<br/>
4. #、updownselect @可上下选择的select <br/>
5. <s:updownselect label="selectCity" emptyOption="true" name="selectCity" list="#jxList" headerValue="-Please Select The City-" headerKey="-1"></s:updownselect>
6. <br/>--------------------------------------------------------------<br/>
7. #、sx:datetimepicker @日期选择控件 <br/>
8. 使用步骤:声明:我这里用的是strut 2.1.8.1,在struts2.0的版本中可能有所不同;<br/>
9. 1.导入struts2-dojo-plugin-2.1.8.1.jar DoJo 插件包;<br/>
10. 2. 导入标签:<%--@ taglib prefix="sx" uri="/struts-dojo-tags"--%>;<br/>
11. 3.在需要使用的页面中的head标签之间加上<%-- <sx:head parseContent="true"/> --%>;<br/>
12. <sx:datetimepicker label="birthday" name="bir" value="#dt"></sx:datetimepicker>
13. <br/>--------------------------------------------------------------<br/>
14. #、sx:tabbedpanel @选项卡控件 <br/>
15. 声明:这个标签代码转至:http://blog.sina.com.cn/s/blog_6145ed810100ecud.html,版权归作者所有;写的挺好拿来大家共同学习。
16.
17. <!-- tabbedpanel标签 -->
发表评论
-
Struts2对Action名称的搜索顺序
2011-08-03 22:47 1385新建一个struts2项目,命名为struts2。按照如下XM ... -
探究Struts2运行机制:StrutsPrepareAndExecuteFilter 源码剖析
2011-08-03 19:09 1778一、概述 Struts2的核心是一个Filter ... -
struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别
2011-08-03 18:02 1348FilterDispatcher是struts2.0.x到2. ... -
框架学习之Struts2 第二节 Action的详解
2011-08-03 17:50 1383http://www.cnblogs.com/ying ... -
Struts2的模板和主题theme及自定义theme
2011-08-03 16:59 8274Struts2提供了三种主题,ajax, simple, cs ... -
struts2 action基类 ActionSupport
2011-08-03 16:14 2643Struts 2的Action无须实现 ... -
Struts2访问Web元素(RequestAware,SessionAware,ApplicationAware)
2011-08-03 14:50 9711在Struts2中,动作类虽然继承ActionSupport类 ... -
Struts2自定义拦截器实例—Session超时的处理
2011-08-03 10:49 3405版本:struts2.1.6 实例功能:当用户登陆后,ses ... -
Struts2数据传输的背后机制:ValueStack(值栈)
2011-07-11 15:34 1348今天看到一篇讲struts2的valuestack的很好文章, ... -
struts2文件上传的采用的三种方式解析
2011-07-06 18:29 1379文件上传几乎是每个项目实现的一个必须的模块。 上传就是将 ... -
Struts2 <s:token/>标签
2011-03-01 09:24 16161、使用Struts2的表单标签,其中需要增加token标签。 ... -
struts2的Action配置通配符
2011-02-28 17:05 22271.注意,书写代码的时候一定要注意命名的规则,不要胡乱的命名, ... -
struts2中form的theme属性
2011-02-28 16:00 2386struts2中theme属性包括xhtml,html,sim ... -
Struts2的类型转换器
2011-02-24 17:27 1401一、概述 在B/S应用中,将字符串请求参数转换为相应的 ... -
Struts2标签--s:url
2011-02-23 17:09 1886<!--action就是struts2 acti ... -
hgdfghgdfh
2011-01-06 17:57 0datealocaltonight.com -
Struts2 默认的模板配置 theme
2010-10-29 10:26 1481在使用struts2标签时,默认情况下生成的html代码会添加 ... -
Struts2自定义Theme
2010-10-29 10:21 16021. Struts2 Theme与WebWork Theme ... -
Struts2 的四种theme类型
2010-10-29 10:13 1682struts2 中有四种 theme 类型: simple ... -
struts2数据校验流程图
2010-10-29 09:40 2155通过我在blog中写到关于利用Struts 2完成手动校验这篇 ...
相关推荐
- **第9章Struts2的标签库**:详细说明Struts2提供的自定义标签,这些标签能够简化页面元素的渲染过程。 - **第10章Struts2的拦截器**:介绍拦截器的作用、配置方式以及自定义拦截器的开发方法。 - **第11章Struts2...
Struts2.1配置是Java Web开发中一个关键步骤...总的来说,Struts2.1的配置涉及到Web应用的结构、配置文件、Action类、表单类、JSP页面和标签库的综合运用。理解并正确配置这些元素是构建有效、高效Struts2应用的基础。
以下是对"struts 2.1常用6个jar包"的详细说明: 1. **struts2-core.jar**:这是Struts 2的核心库,包含了框架的主要组件,如Action类、Result类、Interceptor拦截器接口、ValueStack等。这个JAR包是所有Struts 2...
- `freemarker-2.x.x.jar`:Struts 2 UI 标签的模板引擎。 - `commons-logging-1.1.x.jar`:Apache Software Foundation 提供的日志包,Struts 2 使用它来支持 Log4J 和 JDK 日志记录。 - `commons-fileupload-1....
第1章 Struts过时了吗? 10 1.1 Struts历史发展过程 10 1.2 Struts2的“简历” 13 1.2.1 标签库介绍 13 1.2.2 拦截器应用目的 14 1.2.3 FilterDispatcher和Action概述 14 1.2.4 Struts2配置文件处理 15 1.2.5 OGNL...
"Struts2 实现分页(网址,文章收藏) - 平静的影子 - 博客园.htm"和"struts标签实现博客园的分页 - 垚淼 - 博客园.htm"这两篇文章可能详细解释了如何通过Struts2的控制器和视图层实现这一功能,包括传递参数、计算页码...
#### 第1章 Struts概述 - **1.1 JSP Framework - Struts介绍** - **Struts**是Apache组织开发的一个开源MVC(Model-View-Controller)架构框架,主要用于简化Java Web应用的开发。它通过将业务逻辑、展示逻辑和...
至于Struts2.0和Struts2.1的区别,虽然这里没有具体说明,但通常更新版本会修复已知问题,增加新功能,提高性能,并可能引入一些不向后兼容的变化。例如,从Struts2.0到Struts2.1可能会改进Action的生命周期,增强...
本文主要针对从旧版本Struts2框架升级至2.5.16版本时可能遇到的各种问题进行详细介绍,并给出相应的解决方案。这包括了jar包的替换与引入、配置文件的调整、代码层面的改动等内容。 #### 二、Jar包替换与引入 ####...
在CHM文件`struts2-API.chm`中,开发者可以找到上述所有概念的详细说明,包括每个类的构造函数、方法、属性以及它们的使用示例。这将极大地提高开发效率,帮助开发者更好地理解和运用Struts2框架。通过深入学习和...
从Struts2.1版本开始,可以使用`@Converter`注解直接在Action类或字段上声明自定义的转换器,简化了配置过程。 5. **类型转换的执行顺序**: - 先尝试使用字段上的注解声明的转换器。 - 如果注解不存在,会查找...
3. **配置文件编写**:按照上述说明编写 `web.xml` 和 `struts.xml`。 4. **业务逻辑实现**:编写具体的业务逻辑代码,如 Action 类、DAO 层等。 5. **单元测试**:编写测试用例,确保各部分功能正常运行。 6. **...
#### Struts2.1.8.1 Struts2是一个基于MVC设计模式的Java Web应用框架。它提供了丰富的标签库和强大的插件系统,能够极大地简化Web应用的开发过程。Struts2与Spring框架集成后,可以更好地管理业务逻辑和Web层之间的...
本文详细介绍了如何在Struts2框架中实现动态树型结构的构建,包括后端代码的设计与实现、前端页面的布局与交互逻辑。通过这些技术点的学习,开发者可以更好地理解和应用Struts2框架来开发具有复杂数据展示需求的应用...
1. **配置Struts2**:首先需要在Web应用的`web.xml`中配置Struts2的核心过滤器`struts2-convention-plugin`,并定义Struts2的主配置文件位置。 2. **配置Spring**:创建Spring的配置文件,定义Bean,包括Action类、...
书中详细介绍了如何将 Struts 框架应用于实际的 Web 应用开发过程中,包括但不限于:如何使用 Struts 的 MVC 架构来组织代码,如何利用其内置的标签库简化页面开发等。 #### 1.1.5 再看看 这部分内容可能是指对 ...
### Struts标签、动态ActionForm、上传组件及Struts验证框架知识点详解 #### 一、Struts标签 **Struts** 是一款基于 **MVC**(Model-View-Controller)设计模式的开源Java Web框架,它能够帮助开发者构建可扩展且...