Struts2接受參數的幾種類型和接受復雜類型參數(list 和list

 Struts2接受參數的幾種類型 

大概有這幾種類型:

1.使用Action的屬性接受參數

       在Action中加入成員變量,配置Getter和Setter方法,Getter而和Setter方法的名字和表單中input標簽的name屬性一致(簡單來說就是Action中變量的名和表單中input的name值一致)

2.使用DomainModel接收參數

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="user.username"><br> Password :<input
type="password" name="user.password"> <br>
<input type="submit"
value="submit">
</form>

User類:

public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

Action類:

public class LoginAction extends ActionSupport implements ModelDriven<User> {
private User user ;
public String login(){
System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}

3.使用ModelDriven接收參數(推薦使用)

   和Domain主要不同:

    1.User對象需要實例化

    2.不需要給User對象配置getter和setter方法

    3.需要實現ModelDriven接口

    4.JSP中input的name屬性不需要加對象.(user.)

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
<input type="submit"
value="submit">
</form>

USER類和上一樣。。

Action:

 

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());


return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}


(當然獲取request后再取參數也是可以的)
    

接受復雜類型參數(list<String>和list<Object>)

1、參數是簡單的List<String>

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
book1: <input type="text" name="bookList[0]"><br>
book2: <input type="text" name="bookList[1]"><br>
book3: <input type="text" name="bookList[2]"><br>
<input type="submit"
value="submit">
</form>

User類:

public class User {
private String username;
private String password;
private List<String > bookList;
public List<String > getBookList() {
return bookList;
}
public void setBookList(List<String > bookList) {
this.bookList = bookList;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

Action類:

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
for (String book : user.getBookList()) {
System.out.println("book= " + book);
}

return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}

2.接受復雜類型參數(list<Object>)

JSP:

<form action="LoginAction.action" method="post">
User : <input type="text" name="username"><br> Password :<input
type="password" name="password"> <br>
book1: <input type="text" name="userList[0].username"><br>
book2: <input type="text" name="userList[1].username"><br>
book3: <input type="text" name="userList[2].username"><br>
<input type="submit"
value="submit">
</form>

USER類:

public class User {
private String username;
private String password;
private List<User> userList;

public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

Action類:

public class LoginAction extends ActionSupport implements ModelDriven<User> {

private User user = new User();
public String login(){

System.out.println("username = " + user.getUsername());
System.out.println("password = " + user.getPassword());
for (User u : user.getUserList()) {
System.out.println("User = " + u.getUsername());
}

return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM