struts2标签

首先在jsp页面中引入以下指令,前提是你已经导入了struts2的jar包。

<%@ taglib uri="/struts-tags" prefix="s" %>

1. struts标签
  1.1 通用标签
    1.1.1 数据标签


          property    用于取值,类似于c标签中的c:out标签,(注:struts标签中的value不是按字符串算,而是按表达式算)

 

a链接跳转到Demo3Action 且传参数

<a href="${pageContext.request.contextPath}/sy/demo3Action.action?sid=1&sname=张三&stu2.sname=李四&stu2.sid=2">struts2标签</a>

 后台Action接收参数,然后跳转到demo3.jsp页面

package com.zking.study.three;
 
import com.opensymphony.xwork2.ModelDriven;
 
import ognl.OgnlContext;
 
public class Demo3Action implements ModelDriven<Student>{
 
	private Student student=new Student(); //  实现ModelDriven接口接收参数
	private String sname; //  get/set方法接收参数
	private Student stu2; //  对象导航接收参数
	
	public String execute() {
		System.out.println(student+" , "+name+" , "+stu2);
		return "demo3";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Student getStu2() {
		return stu2;
	}
	public void setStu2(Student stu2) {
		this.stu2 = stu2;
	}
	
	@Override
	public String toString() {
		return "Demo3Action [student=" + student + ", name=" + name + ", stu2=" + stu2 + "]";
	}
	@Override
	public Student getModel() {
		return student;
	}
}

 demo3.jsp,

<body>
<!-- 取栈顶,取student(model) -->
<s:property/>
<!-- 取根对象最上面的对象的属性 -->
<s:property value="sid"/>
<!-- 取根对象的stu2对象的sid属性 -->
<s:property value="stu2.sid"/>
<!-- 取非根对象stu2对象的sid属性 -->
<s:property value="#request.stu2.sid"/>
 
<!-- value不是按字符串算,而是按表达式算,所以‘123456’不会显示出来 -->
<s:property value="123456"/>
</body>

  set

<body>
<!-- 通过var去设值的都是放在非根对象里的 -->
<s:set var="test" value="stu2.sid"></s:set>
 
<s:property value="#test"/>
</body>

action


<body>
    <!-- 通常用于请求后台,获取初始化数据的 -->
    <s:action name="demo3Action" namespace="/sy" var="test2">
<!-- 带参数则在action标签内加入param标签,param标签数量依实际情况调整 -->
        <!-- param有两种赋值方式, 一种为ognl表达式,一种为字符串 -->
        <s:param name="a" value="#sname"></s:param>   <!-- ognl表达式 -->
        <s:param name="a">123</s:param>    <!-- 字符串 -->
    </s:action>
</body>

url

<body>
    <!-- url标签是为了生成地址所用,不会访问后台 -->
    <s:url namespace="/sy" action="demo3Action" var="test3">
        <!-- 带参数则在action标签内加入param标签,param标签数量依实际情况调整 -->
        <!-- param有两种赋值方式, 一种为ognl表达式,一种为字符串 -->
        <s:param name="a" value="#sname"></s:param>   <!-- ognl表达式 -->
        <s:param name="a">123</s:param>    <!-- 字符串 -->
    </s:url>
    
    <a href='<s:property value="#test3"/>'>xxx</a>
<!-- a标签的href属性是按字符串算的,所以要在字符串外包裹一层%{ },强制转换成OGNL表达式计算 -->
    <s:a href="%{#test3}">xxx</s:a>
</body>

debug

   标签用于调试值栈,查看其中的值。

<body>
    <s:debug/>
</body>

date

<body>
    <%
	request.setAttribute("datecurrent", new Date());
    %>
    <s:date name="#request.datecurrent"/>
</body>

  1.1.2 控制标签
         

if


<body>
    <%
	request.setAttribute("result", 75);
    %>
    <s:if test="#request.result>90">A</s:if>
    <s:elseif test="#request.result>70">B</s:elseif>
    <s:elseif test="#request.result>60">C</s:elseif>
    <s:else>D</s:else>
</body>

iterator


<body>
    <%
	request.setAttribute("result", new String[]{'1','2','3'});
    %>
    <s:iterator var="v" value="#request.result">
	<li>
		<s:property value="#v"/>
	</li>
    </s:iterator>    
</body>

 1.2 UI标签
    1.2.1 表单标签


<body>
    <s:form action="demo3Action" namespace="/sy">
    <s:textfield label="姓名" name="uname"></s:textfield>
 
	<s:radio list="#{1:'男',2:'女'}" label="性别" name="sex" value="2"></s:radio>
	<s:select label="时间选择" name="deptName" list="#{1:'昨天',2:'今天',3:'明天'}"></s:select>
	<!-- 单选复选框,往后台传值是布尔类型的 -->
	<s:checkbox label="是否已婚" name="married" ></s:checkbox>
	<s:checkboxlist label="爱好" list="#{1:'篮球',2:'足球',3:'跑步'}" name="hoppy"></s:checkboxlist>
		<s:textarea label="备注" name="remark"></s:textarea>
		<s:hidden name="xxx" value=""></s:hidden>
    </s:form>
</body>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章