书到用时方恨少,好久不做这个了,今天居然栽在这里了。特此记录,以备后用。
如登录界面保留原来的用户名和密码
login.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
- <%@taglib uri="/struts-tags" prefix="s"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'login.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- <style>
- .errorMessage{
- color:red;
- }
- </style>
- </head>
- <body>
- <form action="login" method="post">
- username:
- <input type="text" name="user.username" value="${user.username}" label="username" />
- <span class=errorMessage>
- <s:property value="errors['user.username'][0]" />
- </span>
- <br>
- password:
- <input type="password" name="user.password" value="${user.password}" label="password" />
- <span class=errorMessage>
- <s:property value="errors['user.password'][0]" />
- </span>
- <br>
- <input type="submit" align="left" />
- </form>
- <br/>
- <s:debug />
- </body>
- </html>
LoginAction.java
- package com.action;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.struts2.ServletActionContext;
- import com.domain.User;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- public class LoginAction extends ActionSupport {
- private User user ;
- public String login(){
- HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST);
- if(user==null)
- return INPUT;
- String ret = SUCCESS;
- if(!user.getUsername().trim().equals("admin")){
- this.addFieldError("user.username", "Username Invalid");
- ret = INPUT;
- }
- if(!user.getPassword().trim().equals("1")){
- this.addFieldError("user.password", "Password Invalid");
- ret = INPUT;
- }
- return ret;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- @Override
- public String execute() throws Exception {
- System.out.println("login action @ method *execute()");
- return super.execute();
- }
- }
struts.xml
加入拦截器
- defaultStack
- <action name="login" method="login" class="com.action.LoginAction">
- <interceptor-ref name="defaultStack"/>
- <result name="success" type="redirect">/success.jsp</result>
- <result name="login">/login.jsp</result>
- <result name="input">/login.jsp</result>
- </action>
-
另
其他解决方法: