本文为原创,转载请注明来自:http://blog.csdn.net/j903829182/article/details/38128777
在我学mavne的时候,遇到了很多的问题,不知道怎么用maven进行包的管里,后来在网上查看了很多的资料,借鉴了其他的博客资料,但是看其他的博客写的不是很详细,所以我在前人的基础上写下我自己学习maven管理struts2项目的过程和步骤,希望对初学者有所帮助,也对于我自己以后在使用maven带来方便。本博文参照的博文是:http://blog.csdn.net/yuguiyang1990/article/details/8798052(也比较详细了)
maven里面包的版本格式网址:
1.在windows(我的事window8)下面输入cmd,进入到dos界面,切换到你存放仓库的目录的上一级目录(方便管理,放在其他地方也是可以的,你在哪个目录下操作,生成的maven项目就在哪个目录下面),我的仓库目录是G:\maven\repository(repository存放maven下载的包),我进入到G:\maven目录里面输入mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp,创建web的maven项目,如下:
2.输入groupid(组织id),artifactId(项目的名字),version或者采用默认的设置(直接回车),
输入Y,项目就生成了
在我的G:\maven目录下面可以看到maven3的项目
3.把生成的maven项目导入myeclipse(我的是myeclipse2013)
打开myeclipse,选择File--〉import-->Maven4Myeclipse--->Existing Maven Projects-->在Root Directory后面点击Browse,找到上面生成的maven3项目,我的是在G:\maven目录下面,---〉确定----〉next---〉Finish
到此为止maven生成的web项目已经导入到myeclipse里面了,但是项目的目录结构还有问题,需要修改。
4.修改项目的目录结构:
需要在src/main目录下创建java文件夹(右击src/main目录的main目录,选择new--〉Folder--〉输入Folder name为java--->Finish完成创建)
需要在src目录下面创建test目录,创建方法如上,接着在src/test目录下面创建java目录和resources
目录结构修改后如下所示:
5.配置工程属性:
右击项目选择Build Path--〉Configure Build Path--〉选择source
双击每个文件夹的Output folder,选择路径
src/main/java,src/main/resources,选择target /classes;
src/test/java ,src/test/resources, 选择target/test-classes;
修改jdk版本:选择 libraries 标签,选中JRE library,单击Edit按钮选择合适的jdk版本,我用的是自己的jdk1.7的所以我选择的是jdk1.7,Finish
最后单击ok,
这时候还可能报错,说jdk的DescriptionResourcePathLocationType Java compiler level does not match the version of the installed Java project facet.maven3 Maven WebappUnknownFaceted Project Problem (Java Version Mismatch),项目前面有个小的红叉,别着急,接下来告诉你怎么处理,
解决办法:右击项目名--〉选择properties--〉点击Myeclipse---〉点击Project Facts--〉找到java,选择1.7版本,---〉apply---〉ok问题就解决了
目录结构如下:
6.经过上面的步骤,基本上maven管理的web就配置好了,接下来就来用maven配置struts
首先右击项目选择Maven4Meclipse ---〉Update Project,现在你看项目的Mave Dependencies里面没有struts2支持的jar包,
所以需要通过maven的配置来倒入struts2的jar包
7.配置pom.xm文件,添加struts2的依赖,这里只需要在pom.xml中添加一个struts-core的依赖即可
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wj.demo</groupId> <artifactId>maven2</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>maven2 Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 属性配置 ,设置字符编码为utf-8--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- 添加JUnit进行测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Struts2 依赖 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.1</version> </dependency> </dependencies> <build> <finalName>maven2</finalName> </build> </project>
可以看到需要的struts2的一些开发包已经下载下来了
8.有了struts2支持的包,接下里就写acition
在src/main/java目录下面创建一个包后,在这个包里面创建一个action的类,类的内容如下
package com.wj.demo.action; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String name;//用户名 private String password;//用户密码 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } //跳转到登入页面 public String login_input()throws Exception{ /*System.out.println("name="+name); System.out.println("password="+password);*/ return SUCCESS; } //登入成功,则在返回success,并在后天打印出数据,用户名和密码 public String login()throws Exception{ System.out.println("name="+name); System.out.println("password="+password); return SUCCESS; } }
9.配置struts.xml。新建文件struts.xml,注意一定要放在src/main/resources下。内容如下:
<?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"> <!-- START SNIPPET: xworkSample --> <struts> <!--设置struts2的字符编码 --> <constant name="struts.i18n.encoding" value="utf-8"></constant> <!-- 设置为开发模式--> <constant name="struts.devMode" value="true" /> <!-- 默认包 --> <package name="default" extends="struts-default"> <!-- <action name="input" class="com.wj.demo.action.UserAcion" method="login_input"> <result name="success">/login.jsp</result> </action> --> <action name="login" class="com.wj.demo.action.UserAction" method="login"> <result name="success">/login_success.jsp</result> </action> </package> </struts>
10.配置web.xml文件,进行请求的过滤
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</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> </web-app>
11.在webapp目录下写jsp文件
写login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% 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>maven and struts login</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"> --> </head> <body> <form action="login" method="post"> username:<input type="text" name="name"/><br> password:<input type="password" name="password"/><br> <input type="submit" value="登入"> </form> <% System.out.println(path+"\n"); System.out.println(basePath); %> </body> </html>
写login_success.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ 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>login success</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"> --> </head> <body> 登入成功!!!. <s:property value="name"/><br> </body> </html>
12.完整的项目结构
到此为止,项目基本已经写完了,
13.发布项目,启动tomcat
打开浏览器,输入访问路径http://localhost:8080/maven2/login.jsp
登入:
后台输出数据:
http://localhost:8080/maven2/
name=hello
password=world
至此使用maven管理struts2的bao,已经写完。
总结:struts2需要的包,利用maven在pom.xml文件里面配置就好了,其他的web操作和普通的web操作一样
原文地址:http://blog.csdn.net/j903829182/article/details/38128777