Struts 2“ set ”标签用于为指定范围(应用程序,会话,请求,页面或操作)中的变量分配值,该操作是默认范围。 查看完整的“ set ”标签示例:
“ value ”表示任何硬编码的字符串,属性值或您可以引用的任何内容。
1.行动
具有“ msg”属性的动作类。
SetTagAction.java
package com.mkyong.common.action;
import com.opensymphony.xwork2.ActionSupport;
public class SetTagAction extends ActionSupport{
private String msg = "Struts 2 is a funny framework";
public String getMsg() {
return msg;
}
public String execute() throws Exception {
return SUCCESS;
}
}
2.设置标签示例
它显示了“ set ”标签的使用。
set.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h1>Struts 2 set tag example</h1>
<h2>1. <s:set var="varMsg" value="msg" /></h2>
<s:set var="varMsg" value="msg" />
<s:property value="varMsg" />
<h2>2. <s:set var="varUrl" value="%{'http://www.mkyong.com'}" /></h2>
<s:set var="varUrl" value="%{'http://www.mkyong.com'}" />
<s:property value="varUrl" />
</body>
</html>
它是如何工作的?
1. <s:set var =“ varMsg” value =“ msg” />
调用操作的getMsg()方法,并将返回的值分配给名为“ varMsg ”的变量。
2. <s:set var =“ varUrl” value =“%{'http://www.mkyong.com'}” />
对字符串进行硬编码,并将其分配给名为“ varUrl ”的变量。
将值分配给变量,而不是属性值。
例如,
public class SetTagAction extends ActionSupport{
private String msg;
public String setMsg(String msg) {
this.msg = msg;
}
...
<s:set var="msg" value="%{'this is a message'}" />
许多Struts 2开发人员认为,“ set ”标记var =“ msg”将通过setMsg()方法将值分配给关联的动作类。
这是错误的 ,set标记将不会调用setMsg()方法,它将仅将“值”分配给名为“ msg ”的变量,而不是操作的属性值。
3. struts.xml
链接〜
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="setTagAction"
class="com.mkyong.common.action.SetTagAction" >
<result name="success">pages/set.jsp</result>
</action>
</package>
</struts>
5.演示
http:// localhost:8080 / Struts2Example / setTagAction.action
输出量
参考
标签: struts2