struts2请求参数的接收


HelloWorld.java:

package blog.action;

public class HelloWorld {
    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;
    }

    public String execute(){
        return "success";
    }
    
    public String add(){
        return "message";
    }  
}

struts-employee.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="employee" extends="struts-default" namespace="/control/employee">
		<action name="add_*" class="blog.action.HelloWorld" method="{1}" >
			<result name="success">/WEB-INF/page/addEmployee.jsp</result>
			<result name="message">/WEB-INF/page/message.jsp</result>
		</action>
	</package>
</struts>



直接通过URL访问方式:http://localhost:8080/struts2/control/employee/add_add.action?name=xxxx&age=34535


还可以通过jsp的方式为属性赋值http://localhost:8080/struts2/control/employee/add_execute

<body>
   <form action="<%=request.getContextPath() %>/control/employee/add_add.action">
    	姓名:<input type="text" name="name"><br/>
   		年龄:<input type="text" name="age"><br/>
   		<input type="submit" value="提交">
   </form>
</body>

回馈页面内容如下:

<body>
    姓名:${name }<br/>
    年龄:${age }
</body>

当然也可以为符合类型赋值,但是jsp页面就必须加上复合类了:

比如HelloWorld中有一个Person类型的复合类,则jsp页面必须改为person.nameperson.age


struts2是通过反射的方法为请求参数赋值的,因此必须提供属性的set方法,如果要显示值还必须提供get方法,此外,对于复合类型的属性,复合类必须有一个默认的无参构造方法,否则会报错。





posted @ 2012-07-23 10:58  xzf007  阅读(166)  评论(0编辑  收藏  举报