Eclipse配置struts2,提供多种问题解决问题,网上的好多坑,保证一次到位。

用Eclipse配置一个简单的struts2,网上的水太深,坑多,各种折磨抓狂大哭。下面就是总结并给出明确的步骤,保证一次到位。当然,版本有差异。

JDK版本:jdk1.7.0_25;Apache版本:Apache Tomcat 7.0 ;版本不是主要的,这里简单列举出来。

首选得下载struts2包,我下载的struts-2.3.32-min-lib.zip,这个包里包含一些struts关键的jar包,解压后将lib文件下面的所有jar包,全部拷贝到工程项目Struts2Demo下面的WebContent-->WEB-INF下面的lib文件里,如下图工程目录所示。

下载struts2网址:http://struts.apache.org/download.cgi#struts25101

在Eclipse中选择File-New-Dynamic Web Project创建动态项目Struts2Demo 

下面先给出项目的代码以及工程路径截图:


1、web.xml 添加struts2拦截器(红色部分是后添加的),web.xml位于工程目录               WEB—INF文件下面
 <display-name>Struts2Demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list> 
<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
<!--注意:一些较低的版本,类名中是没有ng这个名称的,建议下载稍高一些的版本-->
</filter-class>
</filter>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern><!--这里建议用*.action,使用/*容易出错  -->
</filter-mapping>


2、配置struts2.xml ,注意该文件放的位置,放在工程目录的src下面(如上图所示位置),服务器运行时会自动加载到META-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">

<!--这段语句得加,否则显示警告标示,2.3对应你下载的struts版本号  -->
<struts>
<package name="com.lx1991.action" extends="struts-default">
<!--这个包名要与在目录src下面建立的com.lx1991.action包名一致  -->
<action name="LoginAction" class="com.lx1991.action.LoginAction">
<!--注意:这个name名称与login.jsp里form表单的action="LoginAction.action"一致-->
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>

3、在工程目录WebContent根目录下面创建login.jsp,用来提交用户名(username)和密码(password)

<body>
<!--LoginAction就是struts.xml里面com.lx1991.action.LoginAction的URL对应的名称(name)  -->
<form action="LoginAction.action" method="post">
用户名:<input type="text" name="username" /><br>
密码:<input type="password" name="password" /><br>
<input type="submit" value="提交" />
</form>

</body>

4、在工程目录WebContent根目录下面创建success.jsp,login.jsp提交的内容经过LoginAction.java类执行,返回的结果经过struts2.xml进行处理,然后转到相应的页面。(例如,输入的用户名和密码正确,转到success.jsp,否则转到error.jsp页面)

<body>
<font color="red" size="20">Success's HelloWorld.. </font>
</body>


5、在工程目录WebContent根目录下面创建error.jsp

<body>
<font color="red" size="20">Error's Page</font>
</body>

6、在工程目录-->Java resources-->src文件下面,新建包(本例包名为:com.lx1991.action), 并在包下面创建LoginAction.java类

package com.lx1991.action;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{ //这里继承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;
}
@Override
public String execute() throws Exception {
if("lx".equals(username)&&"123".equals(password)){//简单验证用户名和面膜
return "success";
}else{
return "error";
}
}
}

7、点击工程Struts2Demo名,右键-->Run As-->Run on Server-->Apache Tomcat 7.0执行。  

访问路径:http://localhost:8080/Struts2Demo/login.jsp

注意事项:如果,login.jsp页面使用struts2标签的如下面的代码,那么访问路径为
 http://localhost:8080/Struts2Demo/login.action(暂时不建议login.jsp使用struts标签)

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login</title>
</head>
<body>
<!--helloWorld就是struts.xml里面HelloWorld的URL  -->
<s:form action="HelloWorld.action" method="post">
<s:textarea name="username" label="用户名" /><br>
<s:password name="password" label="密码" /><br>
<s:submit value="提交" />
<s:reset value="重置" />
</s:form>

</body>
</html>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章