struts2标签库详解(一)非UI标签之数据访问标签

时间:2021-07-21 15:47:19

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得结果

struts2标签库详解(一)非UI标签之数据访问标签

 

>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>


结果

struts2标签库详解(一)非UI标签之数据访问标签

 

>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文件的运行结果。

struts2标签库详解(一)非UI标签之数据访问标签

删除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。