maven与struts2

来源:互联网 发布:算法基础打开算法之门 编辑:程序博客网 时间:2024/05/16 19:21

本文为原创,转载请注明来自:http://blog.csdn.net/j903829182/article/details/38128777

在我学mavne的时候,遇到了很多的问题,不知道怎么用maven进行包的管里,后来在网上查看了很多的资料,借鉴了其他的博客资料,但是看其他的博客写的不是很详细,所以我在前人的基础上写下我自己学习maven管理struts2项目的过程和步骤,希望对初学者有所帮助,也对于我自己以后在使用maven带来方便。本博文参照的博文是:http://blog.csdn.net/yuguiyang1990/article/details/8798052(也比较详细了)

maven里面包的版本格式网址:

http://mvnrepository.com/

http://search.maven.org/


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>

之后你clean下项目,右击项目选择Maven4Meclipse ---〉Update  Project,maven会自动从网上下载struts需要的其他的依赖包,下载后可以看到



可以看到需要的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操作一样







0 0