Struts 2 ONL表現の実例
Object Graph Navigation Language:オブジェクトマップナビゲーション言語は、ポイントでメンバー変数にアクセスすることです。
struts.xml:
ONL SUCCESS
アクセス値スタックのactionの一般プロパティ1=jack
アクセス値スタックのactionの一般的な属性2=111
[デバッグ]
ps:[Debug]をクリックすると、スタック値の中にusernameとpasswordがあることが確認できます。
例2:
struts.xml:
アクセスUser属性
結果ページ:
ONL SUCCESS
アクセス値スタックのオブジェクトの通常の属性(get setメソッド):
user-age:21|21
[デバッグ]
[Debug]をクリックすると、スタック値の中にuserオブジェクトが存在することが分かります。
例3:
struts.xml
アクセスCat属性
アクセス値スタックのオブジェクトの通常の属性(get setメソッド):
cat-friend-name:littleBoy
「Debug」を見てみると、catのみが値スタックにあり、catを介してdogに接続し、dogの属性を取得することを説明しています。
アクセスcat方法:
アクセス値スタックのオブジェクトの通常の属性:
cat-miaomiao:miaomiao
actionにアクセスするための一般的な方法:
アクセス値スタックにおけるacionの一般的な方法:
actionn-m():ハロー
締め括りをつける
以上が、Struts 2 OGAL表現の実例について詳しく説明した内容の全部です。何か問題がありましたら、いつでもメッセージを残してください。
<s:property value="cat.name"/>
例1:struts.xml:
<package name="ognl" namespace="/ognl" extends="struts-default">
<action name="og1" class="cn.edu.hpu.action.OgnlAction1">
<result>/ognl.jsp</result>
</action>
</package>
OgnlAction 1.java:
package cn.edu.hpu.action;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction1 extends ActionSupport{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
}
アクセスリンク:
<a href="<%=basePath%>ognl/og1?username=jack&&password=111" rel="external nofollow" >OGNL</a><br/>
結果画面:
OGNL SUCCESS!!<br/>
<ol>
<li> action 1=<s:property value="username"/></li>
<li> action 2=<s:property value="password"/></li>
</ol>
<s:debug></s:debug>
結果の表示:ONL SUCCESS
アクセス値スタックのactionの一般プロパティ1=jack
アクセス値スタックのactionの一般的な属性2=111
[デバッグ]
ps:[Debug]をクリックすると、スタック値の中にusernameとpasswordがあることが確認できます。
例2:
struts.xml:
<package name="ognl" namespace="/ognl" extends="struts-default">
<action name="user2" class="cn.edu.hpu.action.UserAction2" method="add">
<result name="success">/ognl.jsp</result>
</action>
</package>
UserAction 2.java:
package cn.edu.hpu.action;
import cn.edu.hpu.mode.User;
public class UserAction2 {
private User user;
public String add(){
System.out.println("name="+user.getName());
System.out.println("age="+user.getAge());
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
User.java:
package cn.edu.hpu.mode;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
リンク:アクセスUser属性
<a href="<%=basePath%>ognl/user2?user.name=tom&&user.age=21" rel="external nofollow" >OGNL2</a><br/>
(あなたがuser.XXXXを伝えてこそ構築できる)結果ページ:
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" >
<title>My JSP 'ognl.jsp' starting page</title>
</head>
<body>
OGNL SUCCESS!!<br/>
<ol>
<li> (get set ):
<br/>
user-age:<s:property value="user.age"/>|<s:property value="user['age']"/></li>
</ol>
<s:debug></s:debug>
</body>
</html>
結果を表示:ONL SUCCESS
アクセス値スタックのオブジェクトの通常の属性(get setメソッド):
user-age:21|21
[デバッグ]
[Debug]をクリックすると、スタック値の中にuserオブジェクトが存在することが分かります。
例3:
struts.xml
<package name="ognl" namespace="/ognl" extends="struts-default">
<action name="cat1" class="cn.edu.hpu.ognl.OgnlAction2">
<result name="success">/ognl.jsp</result>
</action>
</package>
OgnlAction 2.java:
package cn.edu.hpu.ognl;
import cn.edu.hpu.mode.Cat;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction2 extends ActionSupport{
private Cat cat;
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public String execute(){
return "success";
}
public String m(){
return "Hello";
}
}
Cat.java:
package cn.edu.hpu.mode;
public class Cat {
private Dog friend;
public Dog getFriend() {
return friend;
}
public void setFriend(Dog friend) {
this.friend = friend;
}
public String miaomiao(){
return "miaomiao";
}
}
Domg.java:
package cn.edu.hpu.mode;
public class Dog {
private String name;
public Dog(){
}
public Dog(String name){
super();
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "dog:"+name;
}
}
リンク:アクセスCat属性
<a href="<%=basePath%>ognl/cat1?cat.friend.name=littleBoy" rel="external nofollow" >OGNL3</a><br/>
結果ページ:
<li> (get set ):
<br/>
cat-friend-name:<s:property value="cat.friend.name"/></li>
結果:アクセス値スタックのオブジェクトの通常の属性(get setメソッド):
cat-friend-name:littleBoy
「Debug」を見てみると、catのみが値スタックにあり、catを介してdogに接続し、dogの属性を取得することを説明しています。
アクセスcat方法:
<a href="<%=basePath%>ognl/cat1" rel="external nofollow" rel="external nofollow" >OGNL4</a><br/>
結果ページ:
<li> :
<br/>
cat-miaomiao:<s:property value="cat.miaomiao()"/></li>
結果:アクセス値スタックのオブジェクトの通常の属性:
cat-miaomiao:miaomiao
actionにアクセスするための一般的な方法:
<a href="<%=basePath%>ognl/cat1" rel="external nofollow" rel="external nofollow" >OGNL5</a><br/>
結果ページ:
<li> action :
<br/>
action-m():<s:property value="m()"/></li>
結果:アクセス値スタックにおけるacionの一般的な方法:
actionn-m():ハロー
締め括りをつける
以上が、Struts 2 OGAL表現の実例について詳しく説明した内容の全部です。何か問題がありましたら、いつでもメッセージを残してください。