struts2的一点理解

7.15----------------------------------------------------------------------------------------------------------------------
//接口Action里面
public interface Action{
public static final String SUCCESS = "success";
public static final String NONE = "none";
public static final String ERROR = "error";
public static final String INPUT = "input";
public static final String LOGIN ="login";

public String execute() throws Exception;
}
//得到session
ActionContext.getContect.getSession.put("userName","芙蓉姐姐");
页面获得session里面的数据${sessionScope.userName};
当action设置了某个属性值后,struts2会把这些属性值封装到一个叫struts.valueStack的请求属性里面。
我们可以通过ValueStack vs = request.getAttribute("struts.valueStack");获取输出的全部信息
vs.findValue("属性名");得到输出信息里面的属性名的值。
//struts标签
<%@ taglib prefix ="s" uri="/struts_tags";%>//引入struts2标签库
<s:if><s:else>这点感觉比jstl强,jstl没有else,只能不停的<c:if>
<s:iterator>主要用于迭代输出某个集合元素的每个元素,相当于jstl里面的<c:ForEach>
ActionSuppport 实现了Action接口和Validatable接口(里面的validate方法可以校验数据)
//数据验证 重写validate方法
要进行数据校验,需要在action中重写validate方法.该方法在execute之前执行
public void validate(){
//用户名为空
if(userName =="" || userName.trim().equals("")){
addFieldErroe("userName","user.required");
}
}
在执行了validate方法以后Action的fieldErrors中已经包含了数据校验错误,请求将会被转发到input逻辑视图处,所以要重写validate方法做校验,一定要配input的视图
同时,我们不需要在页面上输出这个验证信息,前提是必须使用struts2的标签。
//struts2的标签
自定义标签
这个需要自己联系一下。。。。。。325页
struts2标签库没有分类只有一个标签库<s:XX>都定义在/struts—tags的命名空间下
struts2标签库也可以分为;
1、用户界面标签库 表单标签库和非表单标签库
2、非用户界面标签库 控制标签库和数据访问标签库
3、AJAX支持标签库

#parameters['foo'] 或者 #parameters.foo 可以用来访问HttpSevletRequest 的getParameter("foo")的返回值
#request['foo'] 或者 #request.foo 可以用来访问HttpSevletRequest 的getAttribute("foo")的返回值
#session['foo'] 或者 #session.foo 可以用来访问HttpSession 的getAttribute("foo")的返回值
#application['foo'] 或者 #application.foo 可以用来访问ServletContext 的getAttribute"foo")的返回值
<s:if test="'foo' in {'foo','bar'}"></s:if>指定集合包含foo元素
<s:if test="'foo' not in {'foo','bar'}"></s:if>指定集合不包含foo元素

还可以通过某个规则来取得集合元素:person.relatives.{? #this.male== 'male'}--取得person中所有性别为male的relative的集合
? 表示符合规则的全部集合$符合规则的最后一个^符合规则的第一个
_________________________________________________________________________________________________________________________
7.16
struts2的控制标签
<s:if><s:elseif><s:else>用于分支控制
<s:set name="age" ,value="29"/>设置一个名为age的的属性值为29
<s:iterator value="循环的集合" status="集合里面的元素 st">
#st.count 当前迭代了几个元素 #st.index 当前迭代元素的索引 #st.last 是否最后一个元素
#st.first 是否第一个元素 #st.even 是否偶数 #st.odd 是否奇数
<s:iterator>还能循环map集合 key-value被当成了一个元素
<s:property value="key"><s:property value="value">
<s:append>用于将多个集合拼接起来。指定一个id用于标识新的集合
例如:<s:append id="newList">
<s:param value="{'Spring2.0','struts2','Hibernate'}"/>
<s:param value="{'西游记','西游记','西游记'}"/>
</a:append>
循环新的集合的时候,取value="#newList"
还能拼接Map和List,取值的时候以Map方式取得数据
generator可以把字符串按指定分隔符分割成多个子串
merge 和append 差不多也是把多个集合拼接成一个集合,区别在于他们在新集合里面的位置不同了。
subset可以取得集合的子集 count 指定子集中元素的个数 source指定源集合,没有指定的话默认是栈顶元素 start从源集合的第几个元素开始截取,默认第一个开始(start=0)
decider 开发者指定是否选中该元素
<s:sort>用于筛选的标签 comparator 必选属性,指定排序的实例 source:可选 源集合的不写默认取栈顶元素
comparator 需要自己实现
-----------------------------------------------------------
数据标签元素 提供各种数据访问相关的功能
<action> 请求action
<bean>
<date> format 时间的格式; nice 只能是true和false 指定是否输出指定时间和当前时间的时间差; name 必填 格式化的日期值;id指定引用该元素的id值
<debug> 调试标签,主要用于生成一个连接,查看ValueStack和 Stack Context里面的所有信息
<include> 用于将一个jsp或者servlet包含到本页面 value 必填 指定包含的jsp页面或者servlet id 选填 指定该标签的ID引用
<param> 主要用于向其他标签提供参数 name 设置的参数名 value 设置参数的参数值 id 引用该元素的ID
<push>用于把某个元素放到栈顶位置 value 必填 放入栈顶元素的值
<set>用于将某个值放入指定范围内 如application session name必填 新变量的名称 scope 可选的 application、session ,
不写默认为 Stack Context value 可选就是要赋给变量的值。默认是栈顶元素
<url>用于生成一个url地址,可以通过url标签指定param子元素,从而向指定url发送请求参数
353
________________________________________________________________________________________________________________
7.19
表单标签
<textfield name="person.firstName"> 该表单元素可以显示 person的firstName属性值
<checkboxlist>//下面是用list和map循环得到checkbox
<s:form theme="simple">
<s:checkboxlist name="a" list="{'A','B','C'}"/>
<s:checkboxlist name="B" list="#{'1':'A','2':'B','3':'C'}" listKey="key" listValue="value"/>
</s:form>
<s:combobox>用户辅助输出和<s:select>不同
<s:combobox label="请选择你要看的书" theme="css_xhtml" list="{'A','B','C'}" name="book"/>
<s:datetimepicker>用于选择时间
<!-- 时间选择框 -->
对于struts2 不同版本的架包 用此标签略有不同 在2.1.6版本中需要引用dojo的架包才能用这个标签
1、引入struts2-dojo-plugin-2.1.6.jar。
2、然后还要设置dojo的taglib
<%@ taglib prefix="sd" uri="/struts-dojo-tags" %>
<sd:head parseContent="true"/>
<s:form>
指定format属性<hr>
<s:datetimepicker name="date" label="购买日期" displayFormat="dddd年MM月DD日"/>
</s:form>
<!-- 连动下拉框 第一个下拉框只有2个元素-->
<s:form name="myForm">
<s:doubleselect label="请选择你喜欢的图书" name="author" list="{'张三','李四'}" doubleName="book" doubleList="top == '张三' ? {'JAVA','C++','C#'}:{'三国演义','水浒传','西游记'}"/>
</s:form>
<!-- 连动下拉框 第一个下拉框多个元素-->
<s:set name="bs" value="#{'张三':{'JAVA','C++','C#'},'李四':{'三国演义','水浒传','西游记'},'王五':{'10086','10000','95599'}}"/>
<s:form name="x1">
<s:doubleselect label="下拉连动多个" list="#bs.keySet()" doubleName="book" doubleList="#bs[top]"/>
</s:form>
注意:doubleselect 必须放在form中,并且要指定form的name属性
--通过struts2标签生成的额代码根据主题的不同是不相同的,一般使用theme="simple",这样不会破坏美工设计的页面~!
370
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值