Struts2属性驱动封装(了),需要使用ognl表达式

来源:互联网 发布:手机淘宝名字好听 编辑:程序博客网 时间:2024/05/16 02:54

创建一个Person类

public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
创建一个Action
public class PersonAction extends ActionSupport{
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public String login(){
System.out.println(person.getName());
return null;
}
}

配置struts2.xml

<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="strtusDemo1.PersonAction" method="login">
<result>/index.jsp</result>
</action>
</package>
</struts>

当jsp页面name使用ognl表达式的。Bean中的name属性可以封装

使用ognl表达式,可以将name封装到Person中






使用普通name属性,person为空。对于上面action代码直接会报空指针



谁来完成的参数封装?
在default.xml中定义了一个拦截器<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
 它底层是先调用了setPesonr方法对person对象进行初始化,在对每一个属性进行赋值时,是调用getPerson方法获取
  Person对象,在通过Person对象的setXxx方法完成请求参数封装。



1 0
原创粉丝点击