10,606
社区成员
发帖
与我相关
我的任务
分享
package OGNL;
public class Student {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String say() {
return "调用方法成功";
}
}
package OGNL;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class OGNLAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private Student stu;
private String name;
Map<String,Object> request;
@SuppressWarnings("unchecked")
public OGNLAction() {
stu = new Student();
stu.setName("富贵");
stu.setId(1);
name = "Tom";
request = (Map<String, Object>) ActionContext.getContext().get("request");
}
public String execute() throws Exception{
request.put("info","request测试");
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student getStudent() {
return this.stu;
}
public void setStudent(Student stu) {
this.stu = stu;
}
}
<body>
<a href="ognl.action">OGNL测试</a>
</body>
<body>
<div>
<h1>操作普通属性</h1>
属性name值:<s:property value="name"/>
<br><hr>
学号:<s:property value="stu.id"/><br>
//问题就出在这里,stu是我创建好了的引用,却无法显示在JSP页面上,把stu改成student后就可以显示了
姓名:<s:property value="student.name"/><br>
say()方法:<s:property value="student.say()"/> //而student这个引用名我从未创建过,却可以取值并显示在JSP页面上
<br><hr>
request中的info值:<s:property value="#request.info"/>
</div>
</body>