Struts2 <s:url>標籤範例


Struts2 <s:url>標籤被用來建立一個URL,並輸出它作為文字格式。它從不通過自己的工作,但它可以提供URL連結到其他標籤,如<s:a>建立超連結或<img>渲染影象。在本教學中,它顯示 Struts2 <s:url>標籤的5種常見用法。

1. 動作

Action類轉發請求。

URLTagAction.java

package com.tw511.common.action;

import com.opensymphony.xwork2.ActionSupport;
 
public class URLTagAction extends ActionSupport{
	
	public String execute() {
		return SUCCESS;
	}
	
}

2. <s:url>標籤範例

這裡舉5個例子來說明如何使用Struts2 <s:url> 標籤。
  1. 建立圖片URL。
    <img src="<s:url value="/images/man.jpg"/>" />
    輸出(假設根上下文名稱為「Struts2Example」)
    <img src="/Struts2Example/images/man.jpg" />
  2. 建立一個「Google」文字,並將其連結到http://www.google.com
    <a href="<s:url value="http://www.google.com"  />" target="_blank">Google</a>

    輸出

    <a href="http://www.google.com" target="_blank">Google</a>  
    當以「http」或「www」字元開始定義URL值,在Struts 2將呈現它,因為它是不增加額外的根上下文的域名為example1。
  3. 建立操作URL以「id」引數,並輸出它作為文字格式。
    <s:url action="urlTagAction.action" >
        <s:param name="id">123</s:param>
    </s:url>

    輸出

    /Struts2Example/urlTagAction.action?id=123
  4. 使用「name」引數來建立操作URL,並用<s:a>組合通過<s:property>標籤。
    <s:url action="urlTagAction.action" var="urlTag" >
        <s:param name="name">yiibai</s:param>
    </s:url>
    <a href="<s:property value="#urlTag" />" >URL Tag Action (via property)</a>

    輸出

    <a href="/Struts2Example/urlTagAction.action?name=yiibai" >URL Tag Action (via property)</a>
  5. 使用 「age」 引數建立操作URL,並用<s:a>通過組合「%{urlTag}標記。
    <s:url action="urlTagAction.action" var="urlTag" >
        <s:param name="age">99</s:param>
    </s:url>
    <s:a href="%{urlTag}">URL Tag Action (via %)</s:a>

    輸出

    <a href="/Struts2Example/urlTagAction.action?age=99">URL Tag Action (via %)</a>

全部的JSP程式碼

url.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
 <html>
<head>
</head>
 
<body>
<h1>Struts 2 URL tag example</h1>

<ol>
<li>
<img src="<s:url value="/images/man.jpg"/>" />
</li>

<li>
<a href="<s:url value="http://www.google.com"  />" target="_blank">Google</a>
</li>

<li>
<s:url action="urlTagAction.action" >
    <s:param name="id">123</s:param>
</s:url>
</li>

<li>
<s:url action="urlTagAction.action" var="urlTag" >
    <s:param name="name">yiibai</s:param>
</s:url>
<a href="<s:property value="#urlTag" />" >URL Tag Action (via property)</a>
</li>

<li>
<s:url action="urlTagAction.action" var="urlTag" >
    <s:param name="age">99</s:param>
</s:url>
<s:a href="%{urlTag}">URL Tag Action (via %)</s:a>
</li>

</ol>

</body>
</html>

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="urlTagAction" 
		class="com.tw511.common.action.URLTagAction" >
		<result name="success">/pages/url.jsp</result>
	</action>
		
    </package>		
</struts>

4. 範例

http://localhost:8080/struts2urltag/urlTagAction.action

在瀏覽器中打上面的網址,它顯示結果如下圖:

參考

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

程式碼下載 - http://pan.baidu.com/s/1c0gBXeC