Struts 2內嵌了Dojo工具包,實現對Ajax的支持。下面是一個用戶名和密碼都是Admin的Login應用。
1、在struts.xml中加入一個Action mapping
xml 代碼
- <action name="showAjaxLoginForm">
- <result>/pages/ajaxlogin.jspresult>
- action>
- <action name="ajaxLogin" class="net.roseindia.Login">
- <result name="input">/pages/ajaxlogin.jspresult>
- <result name="error">/pages/ajaxlogin.jspresult>
- <result>/pages/ajaxloginsuccess.jspresult>
- >
2、用Ajax編寫一個Login頁面ajaxlogin.jsp
這個頁面使用了
xml 代碼
- <%@ taglib prefix="s" uri="/struts-tags"%>
- <html>
- <head>
- <s:head theme="ajax" debug="true"/>
- head>
- <body>
- <s:div id="loginDiv" theme="ajax">
- <div style="width: 300px;border-style: solid">
- <s:form action="ajaxLogin" validate="true">
- <tr>
- <td colspan="2">
- Login
- td>
- tr>
- <tr>
- <td colspan="2">
- <s:actionerror />
- <s:fielderror />
- td>
- tr>
- <s:textfield name="username" label="Login name"/>
- <s:password name="password" label="Password"/>
- <s:submit theme="ajax" targets="loginDiv" notifyTopics="/ajaxLogin"/>
- s:form>
- div>
- s:div>
- body>
- html>
3、編寫一個驗證用戶名和密碼的Action類Login.java
如果驗證成功返回SUCCESS,失敗就返回ERROR
java 代碼
- package net.roseindia;
- import com.opensymphony.xwork2.ActionSupport;
- import java.util.Date;
- /**
- * Validate a user login.
- */
- public class Login extends ActionSupport {
- public String execute() throws Exception {
- System.out.println("Validating login ... ...");
- System.out.println("User = " + getUsername());
- if (!getUsername().equals("Admin") || !getPassword().equals("Admin")) {
- System.out.println("Validating error ! User = " + getUsername());
- addActionError("Invalid user name or password! Please try again!");
- return ERROR;
- } else {
- System.out.println("Validating success !");
- return SUCCESS;
- }
- }
- // ---- Username property ----
- /**
- * Field to store User username.
- */
- private String username = null;
- public String getUsername() {
- return username;
- }
- public void setUsername(String value) {
- username = value;
- }
- // ---- Username property ----
- /**
- * Field to store User password.
- */
- private String password = null;
- public String getPassword() {
- return password;
- }
- public void setPassword(String value) {
- password = value;
- }
- }
4、編寫一個登錄成功頁面ajaxloginsuccess.jsp
xml 代碼
- <html>
- <head>
- <title>Login Successtitle>
- head>
- <body>
- <p align="center"><font color="#000080" size="5">Login Successful !font>p>
- <h1> Welcome to <%=request.getParameter("username")%> h1>
- body>
- html>
5、訪問下面連接 http://localhost:8080/s2ajax/showAjaxLoginForm.action