以get方式发送参数
步骤一:在action中定义两个参数name和age,并定义出相应的set和get方法
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
注:要接收值需要set方法,如果要把接收到的值打印出来,需要用到get方法
步骤二:在struts.xml文件中配置方法
<package name="itcast" namespace="/test" extends="struts-default">
<action name="helloword" class="cn.itcast.action.HelloWordAction" method="execute">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
步骤三:在jsp页面打印显示
name=${name}<br/>
age=${age}
步骤四:通过路径访问并传递两个参数
localhost:8080/struts2/test/helloword.do?name=aaaa&age=12
结果:
name=aaaa
age=12
步骤分析:首先,用户在浏览器中发送请求,请求到达struts.xml文件后根据相应的配置发送到特定的action中的方法去处理,处理后返回相应的视图,在jsp页面打印出相应的数据
以post方式提交参数
在index.jsp中加入以下代码:
<form action="/struts2/test/helloword.do" method="post">
name:<input type="text" name="name"/><br/>
age:<input type="text" name="age"/><br/>
<input type="submit" value="确定"/>
</form>
在运行时直接访问此jsp页面即可
使用符合类型接收请求参数
步骤一:定义一个bean
Person.java
public class Person {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
步骤二:jsp页面的搭建 注意文本框的名字
<form action="/struts2/test/person.do" method="post">
name:<input type="text" name="person.name"/><br/>
age:<input type="text" name="person.age"/><br/>
<input type="submit" value="确定"/>
</form>
步骤三:在struts.xml文件中配置
<action name="person" class="cn.itcast.action.PersonAction" method="person">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
步骤四:action中的参数及方法
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public String person(){
System.out.println(person.getName());
return "success";
}
步骤五:返回视图后的jsp页面,获取并打印出参数
name=${person.name}<br/>
age=${person.age}
访问时直接访问index.jsp即可:
http://localhost:8080/struts2/index.jsp
使用符合类型接收请求参数的好处:
会减少action中存在大量的set、get方法的代码
Person为什么能够将参数存储起来呢?
首先struts2的拦截器接收到请求参数后,根据请求参数的名称,会访问属性,如果person对象为空,struts2会利用反射机制调用person的构造器方法,然后对它进行实例化,实例化后再通过反射机制为它的两个属性注值,所有如果Person中没有默认构造器,会报错
复习struts2之请求参数接收
最新推荐文章于 2024-04-05 21:42:11 发布