疯了都,,今天中午找错误,找啊找,可就是感觉没有错误!
于是 我决定睡一觉,,,起来找,过了几分钟突然发现struts.xml里package少添一个属性extends="struts-default"
我重新来写一下如何配置 (我使用的是IDEA)
1.新建一个project
2.然后配置Tomcat和导入包
这里我不配置tomcat 之前写过。
导入包 需要的包有
jar包 | 作用 |
---|---|
commons-fileupload-1.2.2.jar | 文件上传 |
commons-io-2.0.1.jar | fileupload依赖于io |
commons-logging-1.1.1.jar | 关于日志处理的 |
ognl-3.0.5.jar | struts2框架核心库包 |
xwork-core-2.3.4.jar | Xwork的核心类库 |
freemarker-2.3.19.jar | 模板引擎 |
javassist-3.11.0.GA.jar | 编辑Java字节码的类库 |
commons-lang3-3.1.jar | 用来处理Java基本对象方法的工具类包 |
3.编写src 下的struts.xml
<package name="lee" extends="struts-default">
//IDEA显示struts-default是红色的吓得我还以为有错误 !
/*extends="struts-default" 不写别想执行了,,,,*/
<?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>
<!--指定全局国际化资源文件-->
<constant name="structs.custom.il8n.resources" value="mess"/>
<!--指定的ACTION定义放在package下-->
<package name="lee" extends="struts-default">
<!-- 名字为login的Action 向该Action发送请求会 跳转指定的.jsp
返回SUCCESS 则会跳转到localhost:8080/welcome.jsp
-->
<action name="login" class="lee.LoginAction">
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
4.编写WEB-INF 下的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<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>
</web-app>
5.编写一个LoginForm.jsp来进行用户注册的页面
这里使用的是struts里的标签库,,我还没怎么学,,
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="x" uri="/struts-tags" %>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<x:form action="login">
<x:textfield name="username" key="user"/>
<x:textfield name="password" key="pass"/>
<x:submit value="login"/>
</x:form>
</body>
</html>
如图
6.再在src下编写一个LoginAction.java
这里继承了ActionSupport类
package lee;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
//定义封装请求参数的username和password成员变量
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;
}
//定义处理用户请求的execute方法
public String execute() throws Exception{
System.out.println(username);
System.out.println(password);
System.out.println(getUsername().equals("lion") && getPassword().equals("1234"));
if(getUsername().equals("lion") && getPassword().equals("1234")){
ActionContext.getContext().getSession().put("user",getUsername());
return SUCCESS;
}
return ERROR;
}
}
7.welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>欢迎</title>
</head>
<body>
<h1>欢迎!<%= request.getSession().getAttribute("user")%></h1>
</body>
</html>