2.2 数据访问标签
数据访问标签用来访问在valueStack中的数据,从而完成数据访问的相关功能
>action
Action标签用来在jsp文件中调用action,通过指定executeResule属性来判断是否在页面中包含处理结果对应的视图资源。
ActionTagAction.java
package com.mycom.action;
import com.opensymphony.xwork2.ActionSupport;
publicclass ActionTagAction extends ActionSupport {
private String uName;
private String uPassword;
public String getUName() {
returnuName;
}
publicvoid setUName(String name) {
uName = name;
}
public String getUPassword() {
returnuPassword;
}
publicvoid setUPassword(String password) {
uPassword = password;
}
@Override
public String execute() throws Exception {
if(uName.equals("hello")&&uPassword.equals("world"))
returnSUCCESS;
returnERROR;
}
}
配置action在struts.xml中
<action name="actionTagAction" class="com.mycom.action.ActionTagAction">
<result name="success">actionTag_success.jsp</result>
<result name="error">actionTag_input.jsp</result>
</action>
创建action处理结果对应的视图资源actionTag_success.jsp,actionTag_input.jsp,actionTag_success.jsp
actionTag_success.jsp
<h1>登陆成功</h1>
<s:property value="uName"/>
<s:property value="uPassword"/>
actionTag_input.jsp
<h1>登陆失败</h1>
<s:property value="uName"/>
<s:property value="uPassword"/>
创建actionTag.jsp文件通过标签action来调用action
<body>
<s:action name="actionTagAction" executeResult="true" ></s:action>
<p>ignoreContextParams="true" 是否将传过来的请求参数传给调用的action</p>
<p>executeResult="true" 是否将action处理的结果视图资源等包含到当前页面</p>
<hr />
<s:action name="actionTagAction" executeResult="true" ignoreContextParams="true" ></s:action>
<p>ignoreContextParams 是否将传过来的请求参数传给调用的action</p>
<p>executeResult="true" 是否将action处理的结果视图资源等包含到当前页面</p>
<hr />
<s:action name="actionTagAction" executeResult="false" ignoreContextParams="false"></s:action>
<p>ignoreContextParams="false" 是否将传过来的请求参数传给调用的action</p>
<p>executeResult="false" 是否将action处理的结果视图资源等包含到当前页面</p>
<hr />
<s:action name="actionTagAction" executeResult="false" ></s:action>
<p>ignoreContextParams 是否将传过来的请求参数传给调用的action</p>
<p>executeResult="false" 是否将action处理的结果视图资源等包含到当前页面</p>
</body>
在IE中输入http://localhost/strutstag/actionTag.jsp?uName=hello&uPassword=world得结果
>bean标签用来在jsp中创建javaBean实例,通过prama可以给创建的javabean实例传递属性值,创建的javabean通过指定var来引用bean
<s:generator separator="," val="%{'aaaa,bbbb,cccc'}" count="3" converter="myConverter"> <!—调用javabean>
<s:beanname="com.mycom.action.MyConverter" var="myConverter"></s:bean> <!—创建javabean>
>date标签:格式化输出data标签
>dubug标签:打印valueStack中的键值对。Outputsthe content of the Value Stack。
<body>
<s:bean name="java.util.Date" var="date"></s:bean>
<s:date name="date" format="yyyy/MM/dd hh:mm"/><br/>
<s:date name="date"/><br/>
<s:date name="date" format="dd/MM/yyyy" nice="true"/><br/>
<s:debug></s:debug>
</body>
结果
>i18n标签:国际化资源标签
>text标签:得到国际化的资源
例子:在struts中写以下文件
国际化资源文件
I18ntest_en_US.properties文件
hello=hello:i18n |
I18ntest_zh_CN.properties文件
Hello=你好:国际化 |
struts.properties文件
Struts.customer.i18n.resources=i18ntest |
或在struts2.xml中配置constant也可。
I18nAndTextTag.jsp
<body>
<p>text标签拿到国际化资源</p>
<s:text name="hello"></s:text><br>
<hr/>
<p>i18n标签拿到国际化资源</p>
<s:i18n name="i18ntest">
get the i18n message:<s:property value="%{getText('hello')}"/>
</s:i18n>
<hr/>
<p>在标签中使用%{getText('hello')}拿到国际化资源</p>
<s:property value="%{getText('hello')}"/>
</body>
没删除struts.properties文件的运行结果。
删除struts.properties文件的运行结果
>include标签:可以包含另一个jsp或servlet页面进来,通过prama标签可以给另一个页面传递参数
IncludeTag.jsp
<s:include value="includeTagTest.jsp">
<s:param name="user" value="xiao"></s:param>
<s:param name="ps" value="123456"></s:param>
</s:include>
incluedTagTest.jsp
<body>
<h1>被包含的includeTagTest.jsp页面</h1>
<hr/>
user:${user } <br/>
ps:${ps }
</body>
运行includeTag.jsp。