maven构建项目
来源:互联网 发布:js中换行符\n和br 编辑:程序博客网 时间:2024/06/08 02:57
在Eclipse下基于Maven整合Struts2,Spring和Mybatis3框架。
新建Maven project,type选择webapp
工程目录如下
这里我的jsp报错,解决办法:
右击项目,找到buildpath,点击Configure buildpath,如下图
点击Configure buildpath后出现下图
然后点击libraries,出现下图
点击add libraries 出现下图
点击next,出现下图后,选择你的web服务器
然后点击finish,就好了
修改pom.xml文件如下:
<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</groupId> <artifactId>javaweb</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>javaweb Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <struts.version>2.3.28</struts.version> <spring.version>3.0.5.RELEASE</spring.version> <mybatis.version>3.2.6</mybatis.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <!-- struts包 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>${struts.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>${struts.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis-spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- java ee 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>javaweb</finalName> </build></project>
在resources目录下添加applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 配置要扫描的包 --> <context:component-scan base-package="action"></context:component-scan> <context:component-scan base-package="service.impl"></context:component-scan> <!-- 指定数据源配置文件 --> <context:property-placeholder location="classpath:jdbc.properties" /> <!-- 数据源 --> <bean id="dataSource_dev" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- 配置sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource_dev" /> <property name="mapperLocations" value="classpath:mapper/*.xml" /> </bean> <!-- 指定DAO层 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 使用Spring的事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource_dev" /> </bean></beans>
在resources目录下添加配置文件jdbc.properties(配置自己的数据库信息,用户名,密码):
# JDBC Configuration driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/webusername=rootpassword=password# DBCP Pool settings initialSize=0maxActive=20maxIdle=20minIdle=1maxWait=60000
在resources目录下添加struts配置文件struts.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts> <!-- 指定默认编码集 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.multipart.maxSize" value="99000000" /> <constant name="struts.multipart.saveDir" value="/tmp"/> <!-- 当struts配置文件修改时是否自动加载 --> <constant name="struts.configuration.xmlreload" value="true" /> <!-- 开发模式下打印详细的错误信息 --> <constant name="struts.devMode" value="true" /> <constant name="struts.ui.theme" value="xhtml" /> <include file="User.xml"></include></struts>
sources目录下添加mybatis配置文件mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="true"/> </settings> <typeAliases> </typeAliases></configuration>
在web.xml中添加如下配置:
<!-- spring的配置文件位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- struts2过滤器配置 --> <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> <!-- 集成spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
在工程中添加如下类:
UserAction .java代码如下:
package action;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.annotation.Resource;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.opensymphony.xwork2.ActionSupport;import beans.User;import service.IUserService;@Controller@Scope("prototype")public class UserAction extends ActionSupport { private static final long serialVersionUID = 1L; @Resource private IUserService userService; private User user; private List<User> userlist; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<User> getUserlist() { return userlist; } public void setUserlist(List<User> userlist) { this.userlist = userlist; } public String execute() throws Exception { System.out.println("execute"); return SUCCESS; } public String addUser() { userService.addUser(user); return SUCCESS; } public String deleteUser() { userService.deleteUser(user.getId()); return SUCCESS; } public String queryAllUser() { userlist = userService.queryAllUser(); return "list"; } public void validate() { System.out.println("validate()会对action中的所有方法进行校验");// if(this.user.getName() == null || this.user.getName().trim().equals("")) { // this.addFieldError("name", "用户名不能为空!"); // } } //直接返回一个字符串 public String queryUserNameByID() throws IOException{ HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); //response.sendError(401,"timeout"); PrintWriter out = response.getWriter(); out.println("luangeng123");//返回的字符串数据 out.flush(); out.close(); return null; }}
User .java
package beans;import java.sql.Date;public class User { private Integer id; private String name; private String pwd; private String sex; private Integer age; private String email; private String phone; private Date register_time; private Date last_update_time; private String remark; private Integer active; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public Date getRegister_time() { return register_time; } public void setRegister_time(Date register_time) { this.register_time = register_time; } public Date getLast_update_time() { return last_update_time; } public void setLast_update_time(Date last_update_time) { this.last_update_time = last_update_time; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public Integer getActive() { return active; } public void setActive(Integer active) { this.active = active; } public User(Integer id,String name, String pwd, String sex,Integer age,String email, String phone,Date register_time,Date last_update_time,String remark,Integer active){ this.id = id; this.name = name; this.pwd = pwd; this.sex = sex; this.age = age; this.email = email; this.phone = phone; this.register_time = register_time; this.last_update_time = last_update_time; this.remark = remark; this.active = active; } public User(){ } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", sex=" + sex + ", age=" + age + ", email=" + email + ", phone=" + phone + ", register_time=" + register_time + ", last_update_time=" + last_update_time + ", remark=" + remark + ", active=" + active + "]"; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }}
IUserDao
package dao;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Select;import beans.User;public interface IUserDao { public void addUser(User user); @Delete("delete from f_user_t where id=#{id}") public void delUser(Integer userId); @Select("select * from f_user_t where id=#{id") public User queryUserById(Integer userId); @Select("select * from f_user_t") public List<User> queryAll();}
mapper中的User.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="dao.IUserDao"> <resultMap type="beans.User" id="userResult"> <result property="id" column="id" jdbcType="INTEGER" javaType="java.lang.Integer" /> <result property="username" column="username" /> <result property="password" column="password" /> </resultMap> <insert id="insertUser" parameterType="beans.User"> insert into f_user_t (name,pwd,sex,age,email,phone,register_time,last_update_time,remark,active) values (#{name},#{pwd},#{sex},#{age},#{email},#{phone},now(),now(),#{remark},#{active}) </insert></mapper>
IUserService .java
package service;import java.util.List;import beans.User;public interface IUserService { public abstract void addUser(User user); public abstract void deleteUser(Integer userId); public abstract User queryUserById(Integer userId); public abstract List<User> queryAllUser();}
UserService.java
package service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import dao.IUserDao;import beans.User;import service.IUserService;@Service @Transactional public class UserService implements IUserService { @Autowired private IUserDao userDao; public void addUser(User user) { userDao.addUser(user); } public void deleteUser(Integer userId) { userDao.delUser(userId); } public User queryUserById(Integer userId) { return userDao.queryUserById(userId); } public List<User> queryAllUser() { return userDao.queryAll(); }}
struts的User.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="user" namespace="/user" extends="struts-default"> <action name="*" class="userAction" method="{1}"> <result name="success" type="redirectAction">queryAllUser</result> <result name="error">/error.jsp</result> <result name="list">/list.jsp</result> <result name="input">/error.jsp</result> </action></package></struts>
list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户列表</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <center> <h2>用户列表</h2> <h3><s:a action="toadd" namespace="/user">添加新用户</s:a> </h3> <table width="90%" border="1"> <tr> <th>用户id</th> <th>用户名称</th> <th>用户密码</th> <th>age</th> <th>email</th> <th>sex</th> <th>phone</th> <th>remark</th> <th>操作</th> </tr> <s:iterator value="userlist"> <tr> <td><s:property value="id"/> </td> <td><s:property value="name"/> </td> <td><s:property value="pwd"/> </td> <td><s:property value="age"/> </td> <td><s:property value="email"/> </td> <td><s:property value="sex"/> </td> <td><s:property value="phone"/> </td> <td><s:property value="remark"/> </td> <td> <s:a action="toupdate" namespace="/user"> <s:param name="user.id" value="id"/>修改 </s:a> <s:a action="delete" namespace="/user"> <s:param name="user.id" value="id"/>删除 </s:a> </td> </tr> </s:iterator> </table> </center> </body></html>
启动mysql,创建数据库web,创建表f_user_t, 插入数据:
启动Tomcat,访问 http://localhost:8080/javaweb/user/queryAllUser
轉自:http://www.cnblogs.com/luangeng/p/5800782.html
- 【Maven】maven 项目构建
- [maven]构建maven web项目
- maven构建项目(maven命令)
- Maven-----构建Maven源码项目
- maven(2)------maven构建项目
- 【Maven】构建生成Maven项目
- 使用Maven构建项目
- 使用Maven构建项目
- maven构建项目步骤
- 使用Maven构建项目
- Maven构建Web项目
- maven构建项目
- eclipse 构建maven 项目
- 用maven构建项目
- Eclipse构建Maven项目
- 项目构建工具 Maven
- Eclipse构建Maven项目
- Eclipse构建Maven项目
- weatherdemo
- ionic和ionic2 环境下编写自定义cordova插件
- 常用软件环境变量的配置
- codeforces 678C Joty and Chocolate
- MFC新手入门之总结篇
- maven构建项目
- 破解前端面试
- 离散数学关系部分错题
- 在编写最简单的linux 内核驱动, 编译后出现的问题以及解决方法。
- mysql的索引
- 【面试题】剑指Offer-39-求二叉树的深度和判断一颗树是否为平衡二叉树
- 1416 两点
- Jboss 环境配置与项目部署
- ABAP 获得程序的激活次数或者传输次数的方法