轻量级JavaEE企业应用实战(十五)

数据标签

数据标签主要作用提供各种数据访问相关功能,包含显示一个Action里的属性,以及生成国际化输出等功能

action标签

允许在JSP页面直接调用Action,因此可以指定需要被调用Action的name和namespace。如果指定了executeResult参数的属性为true,该标签还会把Action的处理结果包含到本页面来
属性:

var //可选,一旦定义Action将被放入Stack Context中,属性可用id替代,不推荐
name //必填,指定该标签调用哪个Action
namespace //可选,指定该标签调用的Action所在的namespace
executeResult //可选,指定是否将Action的处理结果页面包含到本页面,默认false
ignoreContextParams //可选,指定该页面请求参数是否需要传入调用的Action,默认false,即将请求参数传入调用Action

<action name="tag" class="com.action.TagAction">
    <result name="done">success.jsp</result>
</action>

<s:action name="tag" executeResult="true" />

bean标签

创建一个JavaBean实例。可以使用param传入属性,如果需要使用param,则为对应的JavaBean类提供对应的setter方法;如果想访问某个属性,则应该提供getter方法

name //必填,指定实例化的JavaBean的实现类
var //可选,如果指定该属性,则JavaBean会被放入Stack Context中,并放入requestScope中

在bean标签的体内时,bean标签穿件的JavaBean实例位于ValueStack的顶端;一旦该标签结束,则JavaBean被移除ValueStack,将无法再次访问该实例;除非指定了var属性,可通过stack Context访问

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />

    <s:property value="name" />
</s:bean>

<s:property value="#p.name" />
${requestScope.p}

date标签

用于格式化输出一个日期,还可以计算指定日期和当前时刻之间的时差

format //可选,根据该属性指定的格式来格式化日期
nice //可选,用于指定是否输出指定日期和当前时刻之差,默认false
name //必填,指定要格式化的日期值
var //可选,指定该属性后,格式化后的字符串将被放入Stack Context中,并放入requestScope中,但不会在页面输出

注:
若指定了nice=trueformat属性,则format属性失效
若既没有指定nice=true又没有指定format,则系统会到国际化资源文件中寻找key为struts.date.format的消息,将该消息当成格式化文本来格式化日期,如果没有找到,则默认按照DateFormat.MEDIUM格式输出

<s:bean var="now" name="java.util.Date" />
<s:date name="#now" format="dd/MM/yyyy" nice="false" />

debug标签

用于辅助调试,在页面生成一个超级链接,可以查看到ValueStack和Stack Context中的信息

id //无意义,仅是该元素的一个引用ID

include标签

用于将一个JSP页面,或者一个Servlet包含到本页面

value //必填,该属性需要被包含的JSP页面或Servlet

<s:include value="included-file.jsp" />

param标签

主要用于为其他白哦前提供参数,比如include标签和bean标签

name //可选,指定需要设置参数的参数名
value //可选,指定需要设置参数的参数值

注:
如果提供了name属性,则要求Component提供该属性的setter方法,系统根据setter方法传入参数;如果不提供,则外层标签必须实现UnnamedParametric接口

push标签

将某个值放到ValueStack栈顶,从而可以更简单的访问该值

value //必填,指定需要放到ValueStack栈顶的值

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />
</s:bean>

<s:push value="#p">
    <s:property value="age" />
</s:push>

set标签

用于将某个值放入指定范围内,如application、session

scope //可选,指定新变量被放置的范围,可以接受application、session、request、page或action,默认是action
value //可选,指定将付给变量的值;如果没有指定该属性,则将栈顶元素赋值
var //可选,指定该属性,则该值放入ValueStack

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />
</s:bean>

<s:set value="#p" name="x" scope="application" />

url标签

生成一个URL地址,可以通过为url标签指定param子元素,从而向指定URL发送请求参数

action //可选,指定生成URL的地址为Action,如Action不提供,就使用value作为URL地址
anchor //可选,指定URL的锚点
encode //可选,是否需要对参数进行编码,默认true
escapeAmp //可选,是否需要对&符号进行编码,默认true
forceAddSchemeHostAndPort //可选,指定是否需要在URL对应的地址里强制添加scheme、主机和端口
includeContext //可选,指定是否需要将当前上下文包含在URL地址中
includeParams //可选,指定是否包含请求参数,只能为none、get或者all,默认get
"method" //可选,指定action的方法。当我们用Action来生成URL时,如果指定该属性,则URL将链接到此namespace的指定Action处
"namespace" //可选,指定命名空间。如果指定该属性,则URL将链接到此namespace的指定Action
porletMode //可选,指定结果页面的porlet模式
scheme //可选,设置scheme属性
"value" //可选,指定生成URL的地址值,如果value不提供就用action属性指定Action作为URL地址
var //可选,与上述标签类似
windowState //可选,指定结果页面的porlet的窗口状态

<s:url value="editGadget.action" />
<s:url action="showBook">
    <s:param name="author" value="111" />
</s:url>
<s:url includeParams="get">
    <s:param name="id" value="%{'22'}" />
</s:url>
<s:url action="showBook" value="xx">
    <s:param name="author" value="111" />
</s:url>

property标签

输出value属性指定的值,如果没有个指定value,则默认输出ValueStack栈顶的值

default //可选,如果输出的属性值为null,则显示default属性指定值
escape //可选,指定是否escape HTML代码,默认true
value //可选
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章