struts2學習(2)struts2核心知識
阿新 • • 發佈:2017-06-28
print back exec soft .cn dtd del display .org
一、Struts2 get/set 自動獲取/設置數據
根據上一章。中的源碼繼續。
HelloWorldAction.java中private String name,自動獲取/設置name:
package com.cy.action; import com.opensymphony.xwork2.Action; public class HelloWorldAction implements Action{ private String name; public String getName() { return name; }public void setName(String name) { this.name = name; } public String execute() throws Exception { System.out.println("執行了Action的默認方法"); return SUCCESS; } }
helloWorld.jsp:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> ${name }你好!! </body> </html>
1)使用get方式:
瀏覽器中訪問:http://localhost:8080/Struts2Chap01/hello?name=asdasd
結果:
2)post方式:
編寫index.jsp頁面:
<body> <form action="hello" method="post"> name: <input type="text" name="name"/> <input type="submit" value="submit" /> </form> </body>
瀏覽器中訪問:http://localhost:8080/Struts2Chap01/index.jsp,輸入name:
點擊submit:
二、ActionSupport 類引入
HelloWorldAction2.java中繼承ActionSupport:
package com.cy.action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction2 extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String execute() throws Exception { System.out.println("執行了HelloWorldAction2 Action的默認方法"); return SUCCESS; } }
struts.xml中修改為com.cy.action.HelloWorldAction2:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 可以創建很多的package,用name來區分 --> <package name="helloWorld" extends="struts-default"> <action name="hello" class="com.cy.action.HelloWorldAction2"> <!-- 默認是轉發,轉發到helloWorld.jsp --> <result name="success">helloWorld.jsp</result> </action> </package> </struts>
測試結果ok;
ActionSupport功能更強大,以後都用ActionSupport。 三、Action 設置數據 需求:我們模擬用戶登錄,如果用戶名為cy,密碼為123456就登錄成功,否則失敗; 第一種:屬性驅動: A.基本數據類型屬性: com.cy.action.UserAction.java:package com.cy.action; import com.cy.model.User; import com.cy.service.UserService; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; private UserService userService = new UserService(); 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; } public String execute() throws Exception { System.out.println("執行了UserAction Action的默認方法"); User user = new User(); user.setUserName(userName); user.setPassword(password); if(userService.login(user)){ return SUCCESS; }else{ return ERROR; } } }View Code
com.cy.model.User:
package com.cy.model; 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; } }View Code
com.cy.service.UserService:
package com.cy.service; import com.cy.model.User; public class UserService { public boolean login(User user){ if("cy".equals(user.getUserName()) && "123456".equals(user.getPassword())){ return true; }else{ return false; } } }View Code
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 可以創建很多的package,用name來區分 --> <package name="helloWorld" extends="struts-default"> <action name="hello" class="com.cy.action.HelloWorldAction2"> <!-- 默認是轉發,轉發到helloWorld.jsp --> <result name="success">helloWorld.jsp</result> </action> <action name="user" class="com.cy.action.UserAction"> <result name="success">success.jsp</result> <result name="error">error.jsp</result> </action> </package> </struts>
login.jsp登錄界面:
<body> <form action="user" method="post"> 用戶名: <input type="text" name="userName"/><br> 密碼: <input type="password" name="password"/><br> <input type="submit" value="登錄" /> </form> </body>
success.jsp登錄成功的頁面:
<body> 登錄成功! </body>
error.jsp登錄失敗的界面:
<body> 登錄失敗! </body>View Code
測試:
瀏覽器訪問http://localhost:8080/Struts2Chap01/login.jsp,輸入cy,123456
登錄成功:
B:javaBean類型屬性驅動:
----------
struts2學習(2)struts2核心知識