新建一个web project,感觉ibatis版本变化导致出现的问题很多
1,先搞struts2
1)引入下列jar包
Commons-logging-1.0.4.jar
Freemarker-2.3.13.jar
Ognl-2.6.11.jar
Struts2-core-2.1.6.jar
Xwork-2.1.2.jar
commons-fileupload-1.2.1.jar
2)修改WEB-INF下的web.xml文件
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3)首先新建一个登陆页面login.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> <s:form name="form1" action="login" > <s:textfield name="username" label="username" ></s:textfield> <s:password name="password" label="password" ></s:password> <s:submit label="submit"></s:submit> </s:form> <s:actionerror/> </body> </html>
4)在根目录下添加struts.xml
<?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> <package name="struts2" extends="struts-default"> <action name="login" class="action.LoginAction"> <result name="success" type="redirect">index.jsp</result> <result name="input">login.jsp</result> <result name="error">login.jsp</result> </action> </package> </struts>
5)建一个action
package action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { public String username; public String password; public String execute(){ if(!username.equals("admin")){ super.addFieldError("username", "用户名错误!"); return ERROR; } if(!password.equals("001")){ super.addFieldError("password", "密码错误!"); return ERROR; } return SUCCESS; } public void validate(){ if(username==null||username.length()==0){ super.addActionError("用户名不能为空"); } if(password==null||password.length()==0){ super.addActionError("密码不能为空"); } } }
6)发布toncat
打开http://127.0.0.1:8080/ibatis12/login.jsp
可以看到登录页面 了,用户、密码是admin、001
struts完成了。
2、spring
添加spring.jar包
1)修改t添加web.xml文件
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/applicationContext*.xml</param-value> </context-param>
2)新建applicationContext.xml
这个位置有点蛋疼,我是加在src根目录下面的
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="TUser" class="spring.TUser"> <property name="username" value="小张"></property> <property name="allname" value="张三"></property> <property name="address" value="青岛市"></property> </bean> </beans>
3)添加一个测试文件SpringTest.java
package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { public static void main( String[] args ) { //加载spring配置文件,初始化IoC容器 ApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml"); //从容器 接管Bean TUser user = (TUser) ac.getBean("TUser"); //输出欢迎信息 System.out.println( "Hello:" + user.getUsername() + ";u is in " + user.getAddress() + " ; and u is " + user.getAllname() ); } }
4)需要一个TUser.java
package test; public class TUser { private String username; private String allname; private String address; public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getAllname() { return this.allname; } public void setAllname(String allname) { this.allname = allname; } public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } }
5)运行SpringTest文件
结果:Hello:小张;u is in 青岛市 ; and u is 张三
spring好了,
3整合struts 和spring
Struts2.1.6的lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中(这个暂时没做)
1)添加web.xml文件
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2)添加applicationContext*.xml
<bean id="loginAction" class="test.LoginAction" scope="prototype">
</bean>
修改struts.xml
<action name="login" class="test.LoginAction">
改为
<action name="login" class="loginAction
启动tomcat
打开http://127.0.0.1:8080/ibatis12/login.jsp
好了,s2s整合好了,下面添加ibatis
4,做一个简单的人事管理
在更目录下,建一个map和一个domain文件包
domain下面建PO类 TDept.java 和TEmployee.java
报错
java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.ValueStack.findValue
jar包冲突,搜索有两个jar包含ValueStack这个类
xwork-2.1.1.jar
xwork-coue-2.1.6.jar
把一个去掉就好了
java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.ValueStack.findValue