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