Struts的数据标签

时间:2021-10-28 22:03:04

1、数据标签

  数据标签分为(bean,param,date,debug,include,set,url,push)

set:用于设置一个新的变量,并将新变量放入指定的作用域中。

  属性:var表示新变量,value表示变量的值。

    <s:set var="i" value="1"></s:set>
    <s:property value="#i"/>
    <s:set var="a" value="'action范围的值'" scope="action"></s:set>
    <s:set var="p" value="'page范围的值'" scope="page"></s:set>
    <s:set var="r" value="'request范围的值'" scope="request"></s:set>
    <s:set var="s" value="'session范围的值'" scope="session"></s:set>
    <s:set var="app" value="'application范围的值'" scope="applicatin"></s:set>
<s:property value="#a"/><br>
<s:property value="#attr.p"/><br>
<s:property value="#request.r"/><br>
<s:property value="#session.s"/><br>
<s:property value="#application.app"/>

  其中第一行的代码表示将1赋值给i,获取值的时候需要用到“#”符号。而其他的实例中scope表示的是范围,访问action的范围是只需要直接赋名,而其他作用域形式(#作用域.变量)访问。

 

bean:用于创建javabean的实例,如果设置了var值,则存于stackcontext,否则标签结束后自动移除。

  属性:name表示javabean类名,var表示名称。

<%
    request.setAttribute("name", "<font color=red>张三</font>");
%>
</head>
<body>
<s:bean name="com.fangchao.model.Student" var="student">
    <s:param name="name" value="'fangchao1'"></s:param>
    <s:param name="age" value="10"></s:param>
</s:bean>

<s:property value="#student.name"/>
<s:property value="#student.age"/>

  在bean标签中使用parameter标签进行赋值,而后通过property标签进行访问。

 

date标签:格式化日期并输出。

  属性:name表示日期,format表示格式化字符串。

<%
    request.setAttribute("date", new Date());
%>
</head>
<body>
${date }<br>
当前日期:<s:date name="#request.date" format="yyyy-MM-dd"/>
</body>

  先获取当前时间,都进行输出,需要注意的是使用date标签时需要指明访问的范围。如request。

 

include标签:用于将一个html,jsp或servlet包含到当前页面中,

  属性:value表示页面的名称。

<s:include value="head.jsp"></s:include>

 

url标签:生成URL地址,可以通过param标签传递请求参数,如果参数为中文,自动编码。

  属性:value表示url值,action表示请求。

<s:url action="hello" namespace="/foreground" id="h">
    <s:param name="name" value="struts2"></s:param>
</s:url>
<s:a href="%{h}">超链接</s:a>

  还有一种写法,可以直接将链接名称放到param后面进行访问。

 

property标签:用于输出值栈,StackContext中的数据

  属性:value表示要输出的值

如果输出值栈(valueStack)中的值,不用#,如果输出StackContext中的值,要用#。

<%
    request.setAttribute("name", "<font color=red>张三</font>");
%>
</head>
<body>
<s:property value="#request.name"/><br>
<s:property value="#request.name2" default="hello"/><br>
<s:property value="#request.name" default="hello" escapeHtml="false"/>
</body>

  最后一行代码中escapeHTML属性设置为false时,name中的字符串<font color=red>张三</font>作为HTML中的内容解析。