Struts2 <s:texttag>標籤範例


Struts2 <s:text>標籤是用來從資源包獲取綑綁動作類的訊息。並按照三個序列:


  1. 顯示來自資源包的訊息,按照Struts2的資源包搜尋順序
  2. 如果未在資源包中找到訊息,則標籤的本身會被顯示。
  3. 如果標記的主體是空的,在<s:text>標籤「name」屬性的值將被顯示。
一個完整的例子:

1. 動作

Action類轉發請求。

TextTagAction.java

package com.tw511.common.action;

import com.opensymphony.xwork2.ActionSupport;
 
public class TextTagAction extends ActionSupport{

	public String execute() throws Exception {
		
		return SUCCESS;
	}
}

2. 屬性檔案

一個簡單的屬性檔案有兩個鍵「name.msg」和「name.msg.param」。

TextTagAction.properies

name.msg = "This is a message from properties file"
name.msg.param = "This is a message from properties file - param : {0}"

3. <s:text>標籤範例

它顯示了<s:text>標籤的使用。

text.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>www.tw511.com</title>
</head>
 
<body>
<h1>Struts2 text標籤範例</h1>

<h2>1.<s:text name="name.msg" /></h2> 
Output : <s:text name="name.msg" />

<h2>2. <s:text name="name.msg.unknow">message doesn't exists</s:text></h2> 
Output : <s:text name="name.msg.unknow">message doesn't exists</s:text>

<h2>3. <s:text name="name.msg.unknow" /></h2> 
Output : <s:text name="name.msg.unknow" />

<h2>4. <s:text name="name.msg.param" ><s:param >yiibai</s:param>
</s:text></h2> 
Output :
<s:text name="name.msg.param" >
	<s:param >yiibai</s:param>
</s:text>

</body>
</html>

它是如何工作的?
1. <s:text name=」name.msg」 />

從資源包獲取並顯示訊息(TextTagAction.properies)關聯當前動作類 (TextTagAction.action).

"This is a message from properties file"

2. <s:text name=」name.msg.unknow」>message doesn’t exists</s:text>

鍵不在資源包「TextTagAction.properies」或搜尋順序中,所以顯示標記的主體。
message doesn't exists

3. <s:text name=」name.msg.unknow」 />

標籤的資源包和主體的訊息未找到,所以顯示在「name」屬性的值。
name.msg.unknow

4. <s:text name=」name.msg.param」 ><s:param >yiibai</s:param></s:text>

通過<s:param>標記傳遞引數到資源包。
"This is a message from properties file - param : yiibai"

4. 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="textTagAction" 
			class="com.tw511.common.action.TextTagAction" >
			<result name="success">/pages/text.jsp</result>
		</action>
		
	</package>
</struts>

5. 執行結果

http://localhost:8080/struts2texttag/textTagAction.action

在瀏覽器中開啟上面的網址,顯示結果如下所示:

參考

  1. Struts2 <s:text>標籤文件


下載程式碼 -