一、jsp向服務器提交參數(shù)的方法如下:
- Form表單提交。
- request.setAttribute();和request.getAttribute();
- URL傳值。
- <jsp:param>
<jsp:forward page="getParam.jsp">
<jsp:param name="name" value="111"/>
<jsp:param name="password" value="123"/>
</jsp:forward>
二、action接收參數(shù)的方式有如下三種。
1. action類中設置接受參數(shù)的同名private屬性,生成相關屬性的set、get方法。調(diào)用set方法自動把jsp參數(shù)值傳給屬性。
jsp頁面如下:
<html>
<head></head>
<body>
<form action="login" method="login">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="submit" type="submit" />
</form>
</body>
</html>
action類如下:
public class UserAction extends ActionSupport {
private String username;
private String password;
private void setUsername(String username) {
this.username = username;
}
private String getUsername() {
return username;
}
private void setPassword(String password) {
this.password = password;
}
private String getPassword() {
return password;
}
}
不需要生成實體類。
2. 域模型(DomainModel)
jsp頁面如下(參數(shù)名稱改變了):
<html>
<head></head>
<body>
<form action="login" method="login">
<input name="user.username" type="text" />
<input name="user.password" type="password" />
<input name="submit" type="submit" />
</form>
</body>
</html>
action類如下:
public class UserAction2 extends ActionSupport {
private User;
private void setUser(User user) {
this.username = username;
}
private User getUser() {
return user;
}
}
實體類如下:
public class User {
private String username;
private String password;
private void setUsername(String username) {
this.username = username;
}
private String getUsername() {
return username;
}
private void setPassword(String password) {
this.password = password;
}
private String getPassword() {
return password;
}
}
3. 模型驅(qū)動(ModelDriven)
體現(xiàn)MVC思想。action類實現(xiàn)ModelDriven接口。
jsp頁面如下:
<html>
<head></head>
<body>
<form action="login" method="login">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="submit" type="submit" />
</form>
</body>
</html>
action類如下(實體類實例化):
public class UserAction3 extends ActionSupport implement ModelDriven {
private User user = new User();
@overwrite
public User getModel() {
return user;
}
}
實體類如下:
public class User {
private String username;
private String password;
private void setUsername(String username) {
this.username = username;
}
private String getUsername() {
return username;
}
private void setPassword(String password) {
this.password = password;
}
private String getPassword() {
return password;
}
}