Struts 常用标签

首先加载标签库

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

一、数据标签

1、set

set标签赋予变量一个特定范围内的值. 当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到.
其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高).

参数:
名称必填缺省类型描述
nametrueString变量的名字
scopefalseactionString变量作用域,可以为application, session, request, page, 或action
valuefalseObject/String将会赋给变量的值
idfalseObject/String元素标识

action:

package com.zking.three;

import com.opensymphony.xwork2.ModelDriven;
import com.zking.one.entity.Cal;

public class TagAction implements ModelDriven<Cal> {

	private Cal cal = new Cal();
	private Cal cal2;
	private String num1;
	private String result;
	
	public String execute() {
		System.out.println(cal);
		System.out.println(cal2);
		System.out.println(num1);
		return "success";
		
	}
	@Override
	public Cal getModel() {
		// TODO Auto-generated method stub
		return cal;
	}
	public Cal getCal2() {
		return cal2;
	}

	public void setCal2(Cal cal2) {
		this.cal2 = cal2;
	}
	public String getNum1() {
		return num1;
	}
	public void setNum1(String num1) {
		this.num1 = num1;
	}
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}

}

跳转:

<a href="${pageContext.request.contextPath }/sy/tagAction.action?num1=20&cal2.num1=90&result=250" >测试</a>
 
例子:
<h3>set</h3>
<!-- 在ognl上下文的根对象中取result的值,赋给test1,value的类型是表达式 -->
 <s:set var="test1" value="result"></s:set>
 ${test1 },${requestScope.test1 }

2、property

得到’value’的属性,如果value没提供,默认为堆栈顶端的元素.

参数:
名称必填缺省类型描述
defaultfalseString如果属性是null则显示的default值
escapefalsetrueBoolean是否escape HTML
valuefalseObjectvalue to be displayed
idfalseObject/String元素标识
例子:
  <h3>property</h3>
          <!-- 默认为堆栈顶端的元素. -->
           <s:property />
           <!-- 取根对象最上面的对象的属性 -->
           <s:property value="num1" />
          <!-- 取根对象的cal2对象的num1属性 -->
           <s:property value="cal2.num1" />
            <!-- 取非根对象的cal2对象的num1属性值 -->
           <s:property value="#request.cal2.num1" />

3、push

push值到堆栈中,方便应用.

参数:
名称必填缺省类型描述
valuetrueObject /String要push到堆栈中的值
idfalseObject/String元素标识
例子:
  <h3>push</h3>
          <!-- push就是将你需要的值放到栈顶,便于页面获取 -->
           <s:property />
           <s:push value="result">
            <s:property />
           </s:push>
            <s:property />

4、action

通过指定命名空间和action名称,该标签允许你在jsp页面直接调用Action. 标签体用来渲染Action执行结果. 除非你设定了executeResult参数为true,否则你在xwork.xml中为该Action指定的Result Processor不会执行.

参数:
名称必填缺省类型描述
idfalseString如果设定,将作为该Action在栈中的标识
nametrueStringaction名字(不包括后缀,如.action)
namespacefalseStringaction所在命名空间
executeResultfalsefalseBooleanAction的result是否需要被执行
ignoreContextParamsfalsefalseBooleanrequest中的参数是否需要传入该Action
例子:
 <h3>action</h3>
          <!-- action通常用来请求后台,获取初始化数据 -->
          <s:action name="tagAction" namespace="/sy" var="test2" ></s:action>
          <s:property value="#test2.cal2" />

5、url

该标签用于创建url,可以通过"param"标签提供request参数.

参数:
名称必填缺省类型描述
includeParamsfalsegetObject/String值为’none’, ‘get’ 或’all’.
schemefalseObject/Stringscheme属性
valuefalseObject/Stringvalue如果不提供就用当前action
actionfalseObject/String用来生成url的action,如果没有则使用value
namespacefalseObject/String命名空间
methodfalseObject/String使用的action的方法
encodefalsetrueBoolean是否encode参数
includeContextfalsetrueBoolean是否实际的上下文环境应该包含在url中

| portletMode | false| | Object/String| 结果portlet 的模式(mode)|
| windowState | false| | Object/String| 结果portlet窗口的状态|
| portletUrlType | false | | Object/String | 指定这时一个 portlet 输出还是一个 action url|
| anchor| false| | Object/String| URL的锚点( anchor)|
| id| false| | Object/String| 该元素标识|

例子:
 <h3>url</h3>
          <!-- url为了生成地址所用,注意与a标签区分 -->
          <s:url namespace="/sy" action="tagAction" var="test3" ></s:url>
        <%--   <s:property value="#test3" />     --%>      
          <a href=' <s:property value="#test3" />  ' ></a>
          <s:a href="%{#test3}" ></s:a>

6、param

为其他标签提供参数,比如include标签和bean标签.
参数的name属性是可选的,如果提供,会调用Component的方法addParameter(String, Object),如果不提供,则外层嵌套标签必须实现UnnamedParametric接口(如TextTag).

该标签的两个属性

name (String) - 参数名
value (Object) - 参数值

注意 : value的提供有两种方式,通过value属性或者标签中间的text,不同之处

参数:
名称必填缺省类型描述
namefalseString参数名
valuefalse从stack中evaluated的值Object/Stringvalue表达式
idfalseObject/String引用元素的id
例子:
 <h3>param</h3>
          <!-- 两种赋值方式:ognl表达式和字符串 -->
           <s:url namespace="/sy" action="tagAction" var="test4" >
           	<s:param name="test5" >aaa</s:param>
           	<s:param name="test6" value="num1" ></s:param>
           </s:url>
           <s:property value="#test4" />

7、date

例子:
<%         
request.setAttribute("Date",new Date());
request.setAttribute("score",new Integer(70));
request.setAttribute("names",new String[]{"zs","ls","ww"});         
%>
<s:date name="#request.Date"  format="yyyy-mm-dd" />
          

8、debug

例子:
 <s:debug/>
          

二、控制标签

1、iterator

例子:
<h3>iterator/if/elseif/else</h3>
          <ul>
          	<s:iterator var="v" value="#request.names" >
          		<li>
          			<s:property value="#v" />
          		</li>
          	</s:iterator>
          </ul>
         
          

2、 if / elseif / else

例子:
  		 <s:if test="#request.score > 80">A</s:if>
		<s:elseif test="#request.score > 60">B</s:elseif>
          <s:else>C</s:else>

3、表单标签

name属性必须写,不然会报错

   
        <s:form namespace="" action=""  >
        	<s:textfield label="姓名" name="uname" />
        	<%-- <s:radio list="{'男','女'}" name="sex" value="'男'" label="性别" /> --%>
        	<s:radio list="#{1:'男',2:'女'}" name="sex" value="2" label="性别" />
        	<s:select list="#{1:'安全部',2:'公关部',3:'人事部'}" name="deptName" label="部门选择" />
        	<s:checkbox label="是否有女朋友" name="married" />
        	<s:checkboxlist label="爱好" name="hobby" list="#{1:'篮球',2:'音乐',3:'游戏'}"/>
        	<s:textarea label="个人简介" name="remark" />
        	<s:hidden name="xxx" value="" />
        </s:form>  

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值