天天看點

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解<s:if><s:elseif><s:else>控制标簽<s:a>超連結标簽

struts2标簽庫常用标簽詳解

struts2标簽主要分兩種:

注意:标簽的屬性可以被指派為一個靜态的值或一個 OGNL 表達式. 如果在指派時使用了一個 OGNL 表達式并把它用 %{} 括起來, 這個表達式将會被求值.

1.通用标簽庫(控制标簽、資料标簽):

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解<s:if><s:elseif><s:else>控制标簽<s:a>超連結标簽

2.表單标簽庫

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解<s:if><s:elseif><s:else>控制标簽<s:a>超連結标簽

<s:property> 将OGNL表達式的内容輸出到頁面

  • value屬性,接受OGNL表達式從值棧取值
  • default屬性,顯示預設值,如果當OGNL表達式沒有擷取到值,default設定顯示預設值
  • escapeHtml屬性,是否對HTML标簽轉義輸出(預設是不轉義true,可以關閉)

例如:action代碼:

package com.cszy.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class TagAction1 extends ActionSupport{
	@Override
	public String execute() throws Exception {
		
		ActionContext.getContext().put("name", "admin");
		ActionContext.getContext().put("table", "<table ><tr><td>html的代碼</td></tr></table>");
		return SUCCESS;
	}
}
           

jsp代碼:

<h3>使用s:property擷取值棧内容</h3>
    <s:property value="name"/>
    <h3>s:property default屬性</h3>
    <s:property value="#age" default="0"/>
  	<h3>s:property escapeHtml屬性,是否對html标簽轉義,預設不轉義(true)</h3>
  	<s:property value="#table" escapeHtml="false"/>
           

頁面效果:

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解&lt;s:if&gt;&lt;s:elseif&gt;&lt;s:else&gt;控制标簽&lt;s:a&gt;超連結标簽

<s:iterator>通過s:iterator周遊集合對象

  • value屬性,從值棧中擷取對應的集合對象
  • var,設定疊代元素的變量

例如:action代碼:

package com.cszy.action;

import java.util.ArrayList;
import java.util.List;

import com.cszy.entity.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class TagAction2 extends ActionSupport{
	
	private List<User> userlist;
	
	
	public List<User> getUserlist() {
		return userlist;
	}


	@Override
	public String execute() throws Exception {

		ActionContext.getContext().getValueStack().set("userrole","1");
		
		userlist = new ArrayList<>();
		userlist.add(new User("tom","123"));
		userlist.add(new User("admin","123"));
		userlist.add(new User("domain","123"));
		//把資料放入值棧
		return SUCCESS;
	}
	
	
}
           

jsp代碼:

<h3>通過s:iterator周遊集合對象</h3>
  	<h4>s:iterator value屬性是用來擷取值棧中的集合對象</h4>
  	<s:iterator value="userlist" var="demo">
  		<s:property value="#demo.username"/>
  		<s:property value="#demo.pwd"/> -->root
  		<s:property value="username"/>
  		<s:property value="pwd"/> -->EL
  		${demo.username}==>${demo.pwd}
  		<br />
  	</s:iterator>
           

頁面效果:

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解&lt;s:if&gt;&lt;s:elseif&gt;&lt;s:else&gt;控制标簽&lt;s:a&gt;超連結标簽

<s:if><s:elseif><s:else>控制标簽

  • 作用:頁面判斷,其中的test屬性可以接收OGNL表達式。

例如:jsp代碼:

<h4>s:if 頁面判斷,其中的test屬性可以接收OGNL表達式</h4>
  	<s:if test="userrole == 1">
  		<s:property value="判斷成功"/>
  	</s:if>
           

此處假設在action中設定了userrole的值為1,那麼這裡就會擷取到userrole的值為1,1==1,那麼就會顯示判斷成功

<s:a>超連結标簽

<!-- action:請求的 URL
namespace:請求的是哪個 namespace 下面的 action
超連結傳值方式一
-->
<s:a action="tag3" namespace="/">
<s:param name="name">tom</s:param>
new 請求 1
</s:a><br>
<!-- 超連結傳值方式二
錯誤的傳值寫法:<s:param name="name" value="igeek"></s:param>
-->
<s:a action="tag3" namespace="/">
<!-- value:ognl 表達式,通路是對象 -->
<s:param name="name" value="'igeek'"></s:param> new 請求 2
</s:a>
           

使用者界面(UI)标簽:使用者界面标簽主要包括兩類:表單類标簽和其他類标簽

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解&lt;s:if&gt;&lt;s:elseif&gt;&lt;s:else&gt;控制标簽&lt;s:a&gt;超連結标簽

<s:form>

作用:生成 form 标簽。

屬性:

  • action 屬性,對應 struts.xml <action> 元素 name 屬性;
  • namespace 屬性,對象 struts.xml <package>元素 namespace 屬性

<s:textfield>, <s:password>, <s:hidden>, <s:textarea>

作用:

  • <s:textfield> 文本框 ,生成 <input type=”text ” >
  • <s:password> 密碼域 ,生成<input type=”password” >
  • <s:hidden> 隐藏域 , 生成 <input type=”hidden” >
  • <s:textarea>文本域,生成<textarea></textarea>

屬性:

struts2标簽庫常用标簽詳解struts2标簽庫常用标簽詳解&lt;s:if&gt;&lt;s:elseif&gt;&lt;s:else&gt;控制标簽&lt;s:a&gt;超連結标簽

<s:radio>、<s:checkboxlist>、<s:select>

作用:(#構造 map 集合)

  • <s:radio> 接收 list 或者 map 生成一組單選按鈕
  • <s:select> 接收 list 或者 map ,生成一組下拉清單
  • <s:checkboxlist> 接收 list 或者 map ,生成一組複選框

綜合代碼:

<h3>struts2 form表單</h3>
	<s:form action="tag5" method="post">
		<h4>文本框:<s:textfield name="username"></s:textfield>  </h4>
		<h4>密碼框:<s:password name="password"></s:password>  </h4>
		<h4>隐藏域:<s:hidden name="hide" value="hide"></s:hidden> </h4>
		<h4>文本域:<s:textarea name="content"></s:textarea> </h4>
		
		<hr/>
		<h4>單選按鈕<s:radio list="{'男','女'}" name="sex"></s:radio> </h4>
		<h4>複選框<s:checkboxlist list="{'籃球','足球','看書'}" name="hobby"></s:checkboxlist> </h4>
		<h4>下拉框<s:select list="{'上海','北京','東京'}" name="city"></s:select> </h4>
		<s:reset value="重置"></s:reset>
		<s:submit value="送出"></s:submit>
	</s:form>
           

繼續閱讀