Struts2 - タグ - データタグ
データタグはデータアクセス関連機能を提供する。Action内の属性、国際化など。
データタグ種類
- s:action : Action実行、結果viewを読み込む
- s:bean : インスタンス生成
- s:param : パラメータ提供
- s:date : 日付出力、指定日付との差出力
- s:push : Value Stackに値を入れる
- s:set : application,session,requst,page,action(request)の指定範囲で値を設定
- s:url : URL生成
- s:include : JSP読み込み
- s:i18n : 国際化リソース指定
- s:text : 国際化出力
- s:debug : OGNLのStack Context, Value Stackのデバック情報表示
- s:property : 属性出力
action
<package name="lee" extends="struts-default"> <action name="tag1" class="action.TagAction"> <result name="done">/WEB-INF/content/succ.jsp</result> </action> <action name="tag2" class="action.TagAction" method="login"> <result name="done">/WEB-INF/content/loginSucc.jsp</result> </action> <action name="*"> <result>/WEB-INF/content/{1}.jsp</result> </action> </package>
・・・略 public String execute() throws Exception { return "done"; } public String login() throws Exception { ActionContext.getContext().put("author", getAuthor()); return "done"; }
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:actionタグ</title> </head> <body> tag1のAction実行結果を読み込む<br/> <s:action name="tag1" executeResult="true"/> <hr/> tag2のAction実行結果を読み込む<br/> リクエストパラメータは送らない<br/> <s:action name="tag2" executeResult="true" ignoreContextParams="true"/> </body> </html>
bean/param
package dto; public class Person { private String name; private int age; public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setAge(int age) { this.age = age; } public int getAge() { return this.age; } }
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:beanタグ</title> </head> <body> <s:bean name="dto.Person"> <!-- Personにパラメータ提供 --> <s:param name="name" value="'Alex'"/> <s:param name="age" value="20"/> Person.name<s:property value="name"/><br/> Person.age:<s:property value="age"/> </s:bean> </body> </html>
date
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:dateタグ</title> </head> <body> <!-- Stack Conext内にnow生成 --> <s:bean var="now" name="java.util.Date"/> <s:date name="#now" format="yyyy/MM/dd" nice="false"/><hr/> <s:date name="#now" format="yyyy/MM/dd" nice="true"/><hr/> <s:date name="#now" nice="true" /><hr/> <s:date name="#now" nice="false"/><hr/> </body> </html>
push
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:pushタグ</title> </head> <body> <h2>s:pushはあるインスタンスをValueStackに入れる(StackContextのtop)</h2> <s:bean name="dto.Person" var="p"> <s:param name="name" value="'Alex'"/> <s:param name="age" value="20"/> </s:bean> <!-- Stack Contextのp対象をValueStackに入れる--> <s:push value="#p"> <!-- 出力 #がいらなくなる --> ValueStack.name:<s:property value="name"/><br/> ValueStack.age:<s:property value="age"/><br/> </s:push> </body> </html>
set
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:setタグ</title> </head> <body> <!-- インスタンス生成 --> <s:bean name="dto.Person" id="p"> <s:param name="name" value="'Alex'"/> <s:param name="age" value="20"/> </s:bean> Stack Contextのpをデフォルト(action)に格納<br/> <s:set value="#p" name="value1"/> Stack Context.name:<s:property value="#value1.name"/><br/> Stack Context.age:<s:property value="#value1.age"/><br/> request.name:${requestScope.value1.name}<br/> request.age:${requestScope.value1.age}<hr/> Stack Contextのpをapplicationに格納<br/> <s:set value="#p" name="value2" scope="application"/> application範囲.name:${applicationScope.value2.name}<br/> application範囲.age:${applicationScope.value2.age}<hr/> Stack Contextのpをsessionに格納<br/> <s:set value="#p" name="value3" scope="session"/> session範囲.name:${sessionScope.value3.name}<br/> session範囲.age:${sessionScope.value3.age} </body> </html>
url
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <title>s:urlタグ</title> </head> <body> <h2>s:urlはURLを生成する</h2> value属性指定<br/> <s:url value="sampleValue.action"/> <hr/> action属性指定,paramあり<br/> <s:url action="sampleAction"> <s:param name="sampleParam" value="'param1'" /> </s:url> <hr/> action,value指定なし<br/> <s:url includeParams="get" > <s:param name="id" value="%{'99'}"/> </s:url> <hr/> action,value同時指定<br/> <s:url action="sampleAction" value="sampleValue"> <s:param name="sampleParam" value="'param1'" /> </s:url> </body> </html>
ほか
<s:include value="included-file.jsp"/> <s:property value="name"/> <s:i18n name="リソース"> <s:text name="key"></s:text> </s:i18n> <s:debug />