1.最初の方法は、属性駆動型の方法でページから渡されたパラメーターを取得することです。ここで、アクションの属性名はページのパラメーター名と一致している必要があることに注意してください。
アクションサンプルコード:
public class LoginOneAction {
private String userName;
private String password;
public String login(){
System.out.println("userName="+userName);
System.out.println("password="+password);
if (userName.equals(password)) {
return "success";
}
return "fail";
}
//=======setter AND getter方法==========
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;
}
}
struts.xml構成のサンプルコードでLoginOneActionを構成します。
<package name="user-login" namespace="/userLogin" extends="struts-default">
<!-- action name请求的Action名称 class Action处理类对应具体路径 -->
<!-- method 指定默认的方法名,如果不指定就是execute方法 -->
<action name="loginOneAction" class="com.gx.web.LoginOneAction">
<result name="success" type="dispatcher">/jsp/successOne.jsp</result>
<result name="fail">/jsp/fail.jsp</result>
</action>
</package>
Jspページコード(アクションの属性名はページのパラメータ名と一致している必要があります):
<body>
<form action="${ctx}/userLogin/loginOneAction!login.action" method="get">
userName:<input type="text" name="userName">
<br>
password:<input type="password" name="password">
<br>
<button type="submit">登录</button>
</form>
</body>
2. 2番目の方法は、上記の最初の方法と同様に、JavaBeanを介してページから渡されたパラメーターを取得することもできます。最初にオブジェクトをカプセル化し、ページパラメータをモデルオブジェクトにカプセル化する必要があります。サンプルコードは次のとおりです。
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
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;
}
}
アクションの最初のモデルオブジェクトのプロパティで、getおよびsetメソッドを記述し、サンプルコードを記述します。
public class LoginTwoAction {
private User user;
//登录action方法
public String login(){
if (user.getUserName().equals(user.getPassword())) {
return "success";
}
return "fail";
}
//======getter and setter方法========
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
struts.xml構成のサンプルコードでLoginTwoActionを構成します。
<package name="user-login" namespace="/userLogin" extends="struts-default">
<action name="loginTwoAction" class="com.gx.web.LoginTwoAction">
<result name="success">/jsp/successTwo.jsp</result>
<result name="fail">/jsp/fail.jsp</result>
</action>
</package>
Jspページのパラメータ名は、最初のメソッドとは異なる方法で記述されています。ognl式が使用されています。サンプルコード:
<body>
<form action="${ctx}/userLogin/loginTwoAction!login.action" method="get">
userName:<input type="text" name="user.userName">
<br>
password:<input type="password" name="user.password">
<br>
<button type="submit">登录</button>
</form>
</body>
3. 3番目の方法は、jspページから渡されたパラメーターをモデル駆動型の方法で受け入れることです。実装方法:ActionにModelDrivenインターフェースを実装させます。このインターフェイスでは、アクションで使用されるデータモデルオブジェクトを返すgetModelメソッドを実装する必要があります。ここで使用されるモデルオブジェクトは、2番目のメソッドでカプセル化されたオブジェクトです。サンプルコード:
public class LoginThreeAction implements ModelDriven<User> {
private User user;
@Override
public User getModel() {
if (user == null) {
user = new User();
}
return user;
}
// 登录action方法
public String login() {
if (user.getUserName().equals(user.getPassword())) {
return "success";
}
return "fail";
}
//========getter==========
public User getUser() {
return user;
}
}
struts.xml構成のサンプルコードでLoginThreeActionを構成します。
<package name="user-login" namespace="/userLogin" extends="struts-default">
<action name="loginThreeAction" class="com.gx.web.LoginThreeAction">
<result name="success">/jsp/successTwo.jsp</result>
<result name="fail">/jsp/fail.jsp</result>
</action>
</package>
Jspページのパラメータ名は、モデルオブジェクトの属性名と一致している必要があります。サンプルコード:
<body>
<form action="${ctx}/userLogin/loginThreeAction!login.action" method="get">
userName:<input type="text" name="userName">
<br>
password:<input type="password" name="password">
<br>
<button type="submit">登录</button>
</form>
</body>