您的位置:首页 > 编程语言 > Java开发

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

2016-01-09 11:40 453 查看

创建一个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方法完成请求参数封装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: