【Struts框架】第一节Action-action接受参数

Action接受参数的方式

方式1:


链接:
<a href="<%=basePath %>javaee/user!add?name=jack&&age=21">添加用户</a>

struts.xml:
<package name="default" namespace="/javaee" extends="struts-default">
   <action name="user" class="cn.edu.hpu.action.UserAction">
       <result name="success">/User_Add_success.jsp</result>
   </action>
</package> 

UserAction(写法相当于一个JavaBean):
package cn.edu.hpu.action;

public class UserAction {

private String name;
private int age;

public String add(){
System.out.println("name="+name);
System.out.println("age="+age);
return "success";
}
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;
}

}

User_Add_success.jsp:
<html>
  <head>
    <title>My JSP 'User_Add_success.jsp' starting page</title>
  </head>
  
  <body>
    User Add success! <br>
  </body>
</html>

原理:?name=jack&&age=21为什么能把值传给JavaBean,并且在add方法中可以看到传过来的参数值?
答:当new这个Action的时候,struts会自动的把javaBean的各种“属性”从“参数”中拿出来帮你设置好(struts自己调用JavaBean的set和get方法)。

方法2:使用DomainModel(域模型DML)
struts.xml:
<package name="default" namespace="/javaee" extends="struts-default">
<action name="user2" class="cn.edu.hpu.action.UserAction2">
       <result name="success">/User_Add_success.jsp</result>
</action>
</package> 

User.java:
package cn.edu.hpu.mode;

public class User {

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;
}

}

UserAction2(写法相当于一个JavaBean):
package cn.edu.hpu.action;

import cn.edu.hpu.mode.User;

public class UserAction2 {

private User user;

public String add(){
System.out.println("name="+user.getName());
System.out.println("age="+user.getAge());
return "success";
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
}

链接:
 使用Domain Model传递参数<a href="<%=basePath %>javaee/user2!add?user.name=tom&&user.age=12">添加用户</a><br/>

User_Add_success.jsp:
<html>
  <head>
    <title>My JSP 'User_Add_success.jsp' starting page</title>
  </head>
  
  <body>
    User Add success! <br>
  </body>
</html>

方法3:继承ModelDriven接口(不推荐使用)

略(就是直接接收一个Form表单对应的实体类)


有关中文参数乱码的问题:

如果不在struts中指定web应用的默认编码集的话,传参时会出现乱码的情况

所以要在struts.xml中设置默认编码集,设置网页的编码方式(下面的例子设置为UTF-8)

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

转载请注明出处:http://blog.csdn.net/acmman/article/details/44158499

你可能感兴趣的:(框架,struts,javaee,action接受参数,action中文参数乱码)