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中的内容解析。