首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

基于Struts 二 Ajax实现的Login应用

2012-09-19 
基于Struts 2 Ajax实现的Login应用Struts 2内嵌了Dojo工具包,实现对Ajax的支持。下面是一个用户名和密码都

基于Struts 2 Ajax实现的Login应用

Struts 2内嵌了Dojo工具包,实现对Ajax的支持。下面是一个用户名和密码都是Admin的Login应用。

?1、在struts.xml中加入一个Action mapping

  1. <action?name="showAjaxLoginForm">?? ???????<result>/pages/ajaxlogin.jspresult>??
  2. action>?? ??
  3. <action?name="ajaxLogin"?class="net.roseindia.Login">?? ???????<result?name="input">/pages/ajaxlogin.jspresult>??
  4. ???????<result?name="error">/pages/ajaxlogin.jspresult>?? ???????<result>/pages/ajaxloginsuccess.jspresult>??
  5. >?

?2、用Ajax编写一个Login页面ajaxlogin.jsp

?这个页面使用了 标签, 这个标签能通过Ajax tags载入页面内容。jsp页面还使用了标签,这个标签可以利用Ajax来更形页面元素和提交一个form。当出现错误是,和标签执行并显示错误信息。

xml 代码?
  1. <%@?taglib?prefix="s"?uri="/struts-tags"%>?? <html>??
  2. ??<head>?? ????<s:head?theme="ajax"?debug="true"/>?? ??head>??
  3. ??<body>?? ????<s:div?id="loginDiv"?theme="ajax">??
  4. ????<div?style="width:?300px;border-style:?solid">?? ??????<s:form?action="ajaxLogin"??validate="true">??
  5. ????????<tr>?? ??????????<td?colspan="2">??
  6. ????????????Login ?? ??????????td>??
  7. ????????tr>?? ????????<tr>??
  8. ??????????<td?colspan="2">?? ????????????<s:actionerror?/>??
  9. ????????????<s:fielderror?/>?? ??????????td>??
  10. ????????tr>?? ?? ??????????<s:textfield?name="username"?label="Login?name"/>??
  11. ??????????<s:password?name="password"?label="Password"/>?? ??????????<s:submit?theme="ajax"?targets="loginDiv"?notifyTopics="/ajaxLogin"/>???? ??
  12. ??????s:form>?? ????div>??
  13. ????s:div>?? ??body>??
  14. html>???

?

?3、编写一个验证用户名和密码的Action类Login.java

如果验证成功返回SUCCESS,失败就返回ERROR

java 代码?
  1. package?net.roseindia; ?? ?? import?com.opensymphony.xwork2.ActionSupport; ??
  2. import?java.util.Date; ?? ?? /** ?
  3. ?*?Validate?a?user?login.?? ?*/??
  4. public?class?Login?extends?ActionSupport?{ ?? ??
  5. ????public?String?execute()?throws?Exception?{ ?? ????????System.out.println("Validating?login?...?..."); ??
  6. ????????System.out.println("User?=?"?+?getUsername()); ?? ????????if?(!getUsername().equals("Admin")?||?!getPassword().equals("Admin"))?{ ??
  7. ????????????System.out.println("Validating?error?!?User?=?"?+?getUsername()); ?? ????????????addActionError("Invalid?user?name?or?password!?Please?try?again!"); ??
  8. ????????????return?ERROR; ?? ????????}?else?{ ??
  9. ????????????System.out.println("Validating?success?!"); ?? ????????????return?SUCCESS; ??
  10. ????????} ?? ????} ??
  11. ?? ????//?----?Username?property?---- ??
  12. ?? ????/** ?
  13. ?????*?Field?to?store?User?username.? ?????*/??
  14. ????private?String?username?=?null; ?? ??
  15. ????public?String?getUsername()?{ ?? ????????return?username; ??
  16. ????} ?? ??
  17. ????public?void?setUsername(String?value)?{ ?? ????????username?=?value; ??
  18. ????} ?? ??
  19. ????//?----?Username?property?---- ?? ??
  20. ????/** ? ?????*?Field?to?store?User?password.?
  21. ?????*/?? ????private?String?password?=?null; ??
  22. ?? ????public?String?getPassword()?{ ??
  23. ????????return?password; ?? ????} ??
  24. ?? ????public?void?setPassword(String?value)?{ ??
  25. ????????password?=?value; ?? ????} ??
  26. ?? }???

?4、编写一个登录成功页面ajaxloginsuccess.jsp

xml 代码
  1. <html>?? ??<head>??
  2. ????<title>Login?Successtitle>?? ??head>??
  3. ??<body>?? ????<p?align="center"><font?color="#000080"?size="5">Login?Successful?!font>p>??
  4. ????<h1>?Welcome?to?<%=request.getParameter("username")%>??h1>?? ??body>??
  5. html>???

5、访问下面连接 http://localhost:8080/s2ajax/showAjaxLoginForm.action

?

?

来自:http://www.iteye.com/topic/124516

热点排行