本人想做一个简单的登录功能,一共有三个页面,全部放在\WebContent文件夹下,分别是
index.jsp
index.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>index.jsp</title> </head> <body> index body </body> </html>
login.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>login</title> </head> <body> <s:form action="login" namespace="/"> <s:textfield key="username"/> <s:password key="password" /> <s:submit/> </s:form> </body> </html>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>welcome</title> </head> <body> welcome </body> </html>
两个配置文件web.xml,放在WebContent\WEB-INF文件夹下
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
struts.xml,在编译后自动生成到/WEB-INF\classes文件夹中
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default" > <action name="login" class="com.emmashomes.struts2.action.LoginAction"> <result name="success">welcome.jsp</result> <result name="login">login.jsp</result> </action> </package> </struts>
一个处理函数LoginAction.java
package com.emmashomes.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ 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; } public String excute() { System.out.println(" LoginAction excute() "); if( "123".equals(username) && "123".equals(password) ) { System.out.println(SUCCESS); return SUCCESS; } System.out.println(LOGIN); return LOGIN; } }
本人想要的结果是,打开login.jsp页面时,当输入帐号密码都为123时,则进入welcome.jsp页面;否则进入login.jsp页面。
现在的问题是,当打开logIn.jsp页面时:
1)会出现 警告: Missing key [username] in bundles [[org/apache/struts2/struts-messages, com/opensymphony/xwork2/xwork-messages]]!
2)不管用户名密码输入什么,都会进入welcome.jsp页面
3)函数中的System.out.println()语句完全没有执行。
本人知道这个问题对于高手们很简单 真心请教 但新手入门 真心痛苦 请教
解决方案
100
分就给本人吧,嘿嘿