标签
来源:互联网 发布:qq空间个性域名注册 编辑:程序博客网 时间:2024/05/22 08:59
常用表单标签
1.用法和html用法类似
2.Struts2会自动加入table以对齐
标 签
说 明
<s:form>…</s:form>
表单标签
<s:textfield>…</s: textfield >
文本输入框
<s:password>…</s: password >
密码输入框
<s:textarea>…</s: textarea >
文本域输入框
<s:radio>…</s: radio >
单选按钮
<s:checkbox>…</s: checkbox >
单选框
<s:submit />
提交标签
<s:reset />
重置标签
<s:hidden />
隐藏域标签
<!-- checkbox在html中表示多选 但在此常用来表示是否 单选
checkbox当不选中时 会向服务器提交一个名为__checkbox_married值为true的参数
如果选中那么会提交除了上面这个参数之外 另一个married=true的参数
后台如果只接收到一个参数,那么会将全局变量设置为false,如果接收到两个,那么为true
所以 struts2提供的checkbox标签会保证后台数据不出错
-->
<!-- 如果使用html的checkbox 那么如果不选中,不会向后台提交参数,如果选中,提交
那么,action中married属性一旦设置初始值为true就会导致数据不一致
-->
<s:form action="tagTest.action">
<!-- hidden标签-->
<s:hidden name="userId"/>
<!-- 文本输入框 -->
<s:textfield name="userName" label="请输入用户名"/>
<s:textfield name="userAge" label="请输入年龄"/>
<!--密码输入框 -->
<s:password name="passWord" label="清楚如密码" showPassword="true"/>
<!-- textArea -->
<s:textarea name="desc" label="desc"/>
<s:checkbox name="married" label="Married"/>
<!-- 多选标签 -->
<s:checkboxlist name="fruits" label="水果" list="#{'orange':'orange','apple':'apple','banana':'banana'}"/>
<!-- 单选按钮 -->
<s:radio name="gender" list="#{'man':'man','woman':'woman'}" label="gender"/>
<!-- 重置标签 重置输入的内容 不重置回显的内容-->
<s:reset value="reset"></s:reset>
<s:submit value="submit"></s:submit>
</s:form>
常用通用标签
名称
标 签
说 明
条件标签
<s:if>……</s:if>
根据表达式的值,
判断将要执行的内容
<s:elseif>……</s:elseif>
<s:else>……</s:else>
迭代
<s:iterator>……</s: iterator >
用于遍历集合
<%
session.setAttribute("qqq","www");
%>
<s:if test="userAge > 100">
!!!!!
~~~~<s:property value="userAge"/><br>
<!-- ognl:struts2特有的解析方式
<s:radio name="gender" list="#{'man':'man','woman':'woman'}" label="gender"/>
userName.equals('bbb')
userAge > 100
如果是webApi中的内容,那么我们要以<s:property value="#session.qqq"/>
如果取对象资源,那么直接用属性名即可
-->
ognl:<s:property value="#session.qqq"/><br>
el:${qqq}
</s:if>
<s:elseif test="userName.equals('bbb')">
.....
</s:elseif>
<s:else>
$$$$$
</s:else>
<%
ArrayList<Person> persons = new ArrayList<Person>();
persons.add(new Person("AA"));
persons.add(new Person("BB"));
persons.add(new Person("CC"));
request.setAttribute("persons", persons);
%>
<s:iterator value="#request.persons">
${name}<br>
</s:iterator>
表单标签的回显:
<!-- ***回显:struts2提供的标签具有回显功能
通过struts2映射创建的action对象会自动压入值栈中
从valueStack(值栈)中将action对象的内容读取出来进行回显
回显的是值栈栈顶的内容,如果栈顶对象没有对应属性,那么会依次向下找,找到就回显,找不到不回显
-->
执行过程:客户端发送一个请求,通过struts.xml找到处理该请求的action类,并通过映射创建该类对象(并根据表单提交的内容对其属性赋值),将其压入值栈中,执行处理请求的方法根据返回值,找到对应的result并进行跳转,跳转完成后,根据值栈栈顶对象的内容进行回显,如果栈顶对象没有对应属性,那么将继续向下查找。
我们也可以手动向值栈中压入一个action对象并通过
<s:debug></s:debug>查看值栈中对象存储的情况
向值栈压入一个action对象:
public String execute(){
System.out.println(this);
//向值栈中push一个新的action对象
TestAction test = new TestAction();
test.userName ="zhangsan";
test.passWord ="aaa";
//ActionContext.getContext().getValueStack()通过action上下文得到值栈
ActionContext.getContext().getValueStack().push(test);
return "success";
}
压入后观察值栈内容为:
Object
Property Name
Property Value
com.struts2.action.TestAction
married
true
desc
null
userId
null
fruits
null
userName
zhangsan
gender
null
userAge
0
passWord
aaa
com.struts2.action.TestAction
married
false
desc
userId
fruits
[]
userName
qqqqqqqqqq
gender
null
userAge
88888888
passWord
123456
com.opensymphony.xwork2.DefaultTextProvider
texts
null
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- 标签
- struts2运行流程
- 理论篇~第六章 元数据
- JavaWeb-NewsServlet-大总结
- 每天一个linux命令(4):mkdir命令
- 设计模式从零开始——代理模式
- 标签
- 欢迎使用CSDN-markdown编辑器
- 死锁产生的原因和解决方法
- Nginx配置文件nginx.conf中文详解(史上最全!!!!)
- Java面试题全集(上)
- genymotion出现INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
- [PAT乙] 1019. 数字黑洞 (20)
- centos 创建svn多仓库,并用hooks同步更新
- redis-set常用命令