手动配置SSI框架

SSI框架为struts、spring、ibatis,在该框架中,使用ibatis作为数据持久层,其中ibatis使用最新版本mybatis3。

注:本文使用版本:struts-2.3.4、spring-3.2.1、mybatis-3.2.1  

  
一、框架下载  
1、Struts2:http://struts.apache.org/download   
2、Spring:http://www.springsource.org/download/community  
3、mybatis:https://code.google.com/p/mybatis/downloads/detail?name=mybatis-3.2.1.zip  
mybatis-spring: https://code.google.com/p/mybatis/downloads/list?q=label:Product-Spring  
  
二、创建项目,添加jar包  
1、创建java web项目testSSI.  
2、添加struts包:  
[plain]  view plain copy
  1. aopalliance-1.0.jar、    
  2. freemarker-2.3.19.jar,    
  3. ognl-3.0.5.jar,    
  4. struts2-core-2.3.4.jar,    
  5. struts2-spring-plugin-2.3.4.jar,    
  6. xwork-core-2.3.4.jar,    
  7. commons-fileupload-1.2.2.jar、    
  8. commons-io-2.0.1.jar、    
  9. commons-lang-2.4.jar、    
  10. commons-lang3-3.1.jar、    
  11. commons-logging-api-1.1.jar。  
3、添加spring包:
[plain]  view plain copy
  1. spring-aop-3.2.1.RELEASE.jar、    
  2. spring-aspects-3.2.1.RELEASE.jar、    
  3. spring-beans-3.2.1.RELEASE.jar、    
  4. spring-context-3.2.1.RELEASE.jar、    
  5. spring-context-support-3.2.1.RELEASE.jar、    
  6. spring-core-3.2.1.RELEASE.jar、    
  7. spring-expression-3.2.1.RELEASE.jar、    
  8. spring-jdbc-3.2.1.RELEASE.jar、    
  9. spring-orm-3.2.1.RELEASE.jar、    
  10. spring-test-3.2.1.RELEASE.jar、    
  11. spring-tx-3.2.1.RELEASE.jar、    
  12. spring-web-3.2.1.RELEASE.jar。  
4、添加ibatis包:
[plain]  view plain copy
  1. mybatis-3.2.1.jar    
  2. mybatis-spring-1.2.0.jar    
5、添加其他包:
[plain]  view plain copy
  1. ojdbc14.jar 【下载地址 http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html 】    
  2. aspectjweaver.jar 【下载地址 http://search.maven.org/remotecontent?filepath=org/aspectj/aspectjweaver/1.6.12/aspectjweaver-1.6.12.jar 】    
  3. javassist-3.15.0-GA.jar    
  4. c3p0-0.9.1.jar  【下载地址:https://code.google.com/p/aicms/downloads/detail?name=c3p0-0.9.1.jar&can=2&q=】  
三、配置struts  
1、配置struts核心过滤器。  
打开web.xml,配置struts核心过滤器和过滤器映射。  
web.xml文件代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"    
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
  5.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">    
  6.     <display-name></display-name>    
  7.         
  8.     <!-- 定义Struts 2的核心控制器 -->     
  9.     <filter>    
  10.         <filter-name>struts2</filter-name>    
  11.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    
  12.     </filter>    
  13.     <filter-mapping>    
  14.         <filter-name>struts2</filter-name>    
  15.         <url-pattern>*.action</url-pattern>    
  16.     </filter-mapping>    
  17.     
  18.     <listener>    
  19.         <listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>    
  20.     </listener>    
  21.     
  22.     <welcome-file-list>    
  23.         <welcome-file>index.html</welcome-file>    
  24.         <welcome-file>index.htm</welcome-file>    
  25.         <welcome-file>index.jsp</welcome-file>    
  26.         <welcome-file>default.html</welcome-file>    
  27.         <welcome-file>default.htm</welcome-file>    
  28.         <welcome-file>default.jsp</welcome-file>    
  29.     </welcome-file-list>    
  30.     
  31. </web-app>  
2、建立BaseAction。  
新建包com.hsinghsu.testSSI.action,在其中建立类BaseAction,继承ActionSupport类。  
BaseAction.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.action;    
  2.     
  3. import com.opensymphony.xwork2.ActionSupport;    
  4.     
  5. public class BaseAction  extends ActionSupport{    
  6.     
  7.     /**   
  8.      *    
  9.      */    
  10.     private static final long serialVersionUID = 4565394360208096613L;    
  11.     
  12. }  
3、编写测试struts的Action。  
在包com.hsinghsu.testSSI.action中建立LoginAction类,继承BaseAction,作为简单的struts测试。  
LoginAction.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.action;    
  2.     
  3. public class LoginAction extends BaseAction {    
  4.     
  5.     /**   
  6.      *    
  7.      */    
  8.     private static final long serialVersionUID = -6144396976094110475L;    
  9.         
  10.     public String execute() throws Exception     
  11.     {      
  12.         return "success";      
  13.     }      
  14.     
  15. }  
4、配置action。  
在struts.xml文件中,添加对LoginAction的配置。  
struts.xml文件代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>    
  2.     
  3. <!DOCTYPE struts PUBLIC    
  4.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
  5.     "http://struts.apache.org/dtds/struts-2.3.dtd">    
  6.     
  7. <struts>    
  8.     <constant name="struts.objectFactory" value="spring" />    
  9.     <constant name="struts.i18n.encoding" value="UTF-8" />    
  10.     <constant name="struts.i18n.reload" value="false" />    
  11.     <constant name="struts.configuration.xml.reload" value="false" />    
  12.     <constant name="struts.custom.i18n.resources" value="globalMessages" />    
  13.     <constant name="struts.action.extension" value="action,," />    
  14.     
  15.     <constant name="struts.convention.package.locators.basePackage"    
  16.               value="com.hsinghsu.testSSI.action" />    
  17.     <constant name="struts.convention.result.path" value="/" />    
  18.     <constant name="struts.serve.static" value="true" />    
  19.     <constant name="struts.serve.static.browserCache" value="false" />    
  20.         
  21.         
  22.     <package name="com.hsinghsu.testSSI.action.test" extends="struts-default">    
  23.         <action name="login" class="com.hsinghsu.testSSI.action.LoginAction">    
  24.             <result name="success">/jsp/welcome.jsp</result>    
  25.         </action>    
  26.     </package>    
  27.         
  28. </struts>  
5、建立测试jsp页面  
新建测试jsp页面welcome.jsp。  
welcome.jsp文件代码如下:
[html]  view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>    
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
  3. <html>    
  4. <head>    
  5. <title>IWelcome</title>    
  6. </head>    
  7. <body>    
  8. Welcome HsingHsu    
  9. </body>    
  10. </html>   
6、配置spring  
打开applicationContext.xml文件,配置spring,添加action bean。  
applicationContext.xml文件代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <beans xmlns="http://www.springframework.org/schema/beans"    
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"    
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"    
  5.     xmlns:context="http://www.springframework.org/schema/context"    
  6.     xsi:schemaLocation="    
  7.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  8.        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd    
  9.        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd    
  10.        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  11.        ">    
  12.            
  13.     <bean id="loginAction" class="com.hsinghsu.testSSI.action.LoginAction"/>     
  14.          
  15. </beans>  
7、配置Spring监听器  
打开web.xml,添加Spring监听器。  
web.xml文件代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"    
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
  5.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">    
  6.     <display-name></display-name>    
  7.         
  8.     <context-param>    
  9.         <param-name>contextConfigLocation</param-name>    
  10.         <param-value>    
  11.         classpath:applicationContext.xml    
  12.         </param-value>    
  13.     </context-param>    
  14.     
  15.     <!-- ssh 中文过滤 -->    
  16.     <filter>    
  17.         <filter-name>characterEncoding</filter-name>    
  18.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    
  19.         <init-param>    
  20.             <param-name>encoding</param-name>    
  21.             <param-value>utf-8</param-value>    
  22.         </init-param>    
  23.         <init-param>    
  24.             <param-name>forceEncoding</param-name>    
  25.             <param-value>true</param-value>    
  26.         </init-param>    
  27.     </filter>    
  28.     <filter-mapping>    
  29.         <filter-name>characterEncoding</filter-name>    
  30.         <url-pattern>/*</url-pattern>    
  31.     </filter-mapping>    
  32.     
  33.     <!-- 定义Struts 2的核心控制器 -->     
  34.     <filter>    
  35.         <filter-name>struts2</filter-name>    
  36.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    
  37.     </filter>    
  38.     <filter-mapping>    
  39.         <filter-name>struts2</filter-name>    
  40.         <url-pattern>*.action</url-pattern>    
  41.     </filter-mapping>    
  42.     
  43.     <!-- 对Spring 容器进行实例化 -->    
  44.     <listener>    
  45.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    
  46.     </listener>    
  47.     <listener>    
  48.         <listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>    
  49.     </listener>    
  50.     
  51.     <welcome-file-list>    
  52.         <welcome-file>index.html</welcome-file>    
  53.         <welcome-file>index.htm</welcome-file>    
  54.         <welcome-file>index.jsp</welcome-file>    
  55.         <welcome-file>default.html</welcome-file>    
  56.         <welcome-file>default.htm</welcome-file>    
  57.         <welcome-file>default.jsp</welcome-file>    
  58.     </welcome-file-list>    
  59.     
  60. </web-app>  
8、配置tomcat并启动,在浏览器中输入http://localhost:8686/testSSI/login.action   

   则页面会显示Welcome HsingHsu。


四、配置ibatis  

1、建立数据库与数据表  
本文采用oracle数据库,建立T_TEST_USER表,新建列ID,NAME,PWD,AGE,SEX。插入一条数据,如id:1,name:hsing,pwd:hsu。  
2、配置ibatis数据库连接等配置。新建jdbc.oracle.properties文件。  
jdbc.oracle.properties文件代码如下:
[plain]  view plain copy
  1. ibatis.connection.driver_class oracle.jdbc.driver.OracleDriver    
  2. ibatis.connection.url jdbc:oracle:thin:@10.127.58.1:1521:ora11g    
  3. ibatis.connection.username adm    
  4. ibatis.connection.password adm    
  5.     
  6. c3p0.acquireIncrement=3    
  7. c3p0.idleConnectionTextPeriod=900    
  8. c3p0.minPoolSize=2    
  9. c3p0.maxPoolSize=50    
  10. c3p0.maxStatements=100    
  11. c3p0.numHelperThreads=10    
  12. c3p0.maxIdleTime=600    
  13. c3p0.initialPoolSize=3   
3、配置spring,添加ibatis支持。  
修改applicationContext.xml文件,添加ibatis支持。  
applicationContext.xml文件代码如下: 
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <beans xmlns="http://www.springframework.org/schema/beans"    
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"    
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"    
  5.     xmlns:context="http://www.springframework.org/schema/context"    
  6.     xsi:schemaLocation="    
  7.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
  8.        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd    
  9.        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd    
  10.        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd    
  11.        ">    
  12.     
  13.     <bean id="placeholderConfig"    
  14.         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">    
  15.         <property name="location">    
  16.             <value>classpath:jdbc.oracle.properties</value>    
  17.         </property>    
  18.     </bean>    
  19.     
  20.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"    
  21.         destroy-method="close">    
  22.         <property name="jdbcUrl" value="${ibatis.connection.url}" />    
  23.         <property name="driverClass" value="${ibatis.connection.driver_class}" />    
  24.         <property name="user" value="${ibatis.connection.username}" />    
  25.         <property name="password" value="${ibatis.connection.password}" />    
  26.         <property name="acquireIncrement" value="${c3p0.acquireIncrement}" />    
  27.         <property name="initialPoolSize" value="${c3p0.initialPoolSize}" />    
  28.         <property name="minPoolSize" value="${c3p0.minPoolSize}" />    
  29.         <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />    
  30.         <property name="maxStatements" value="${c3p0.maxStatements}" />    
  31.         <property name="numHelperThreads" value="${c3p0.numHelperThreads}" />    
  32.         <property name="maxIdleTime" value="${c3p0.maxIdleTime}" />    
  33.     </bean>    
  34.     
  35.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    
  36.         <property name="configLocation" value="classpath:sqlMapConfigMybatis.xml" />    
  37.         <property name="dataSource" ref="dataSource" />    
  38.     </bean>    
  39.     
  40.     <bean id="abstractDao" abstract="true">    
  41.         <property name="sqlSessionFactory" ref="sqlSessionFactory" />    
  42.     </bean>    
  43.         
  44.     <bean id="userDao"    
  45.         class="com.hsinghsu.testSSI.dao.impl.UserDaoImpl"    
  46.         parent="abstractDao" />    
  47.     
  48.     <context:component-scan base-package="com.hsinghsu.testSSI">    
  49.         <context:exclude-filter type="annotation"    
  50.             expression="org.springframework.stereotype.Controller" />    
  51.     </context:component-scan>    
  52.     
  53. </beans>  
4、配置ibatis映射文件  
新建sqlMapConfigMybatis.xml,添加ibatis映射文件  
代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>      
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"      
  3.     "http://mybatis.org/dtd/mybatis-3-config.dtd">    
  4.     
  5. <configuration>    
  6.     <mappers>    
  7.         <!-- 配置sql语句文件 -->    
  8.         <mapper resource="com/hsinghsu/testSSI/data/User.xml" />    
  9.     </mappers>    
  10. </configuration>  
5、创建持久层实体类。  
创建包com.hsinghsu.testSSI.model,创建User类,添加5个私有成员,对应数据表中5个属性,并一定要添加set和get方法。  
User.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.model;    
  2.     
  3. public class User {    
  4.     
  5.     private Long id;    
  6.     private String name;    
  7.     private String pwd;    
  8.     private Long age;    
  9.     private Long sex;    
  10.     
  11.     public Long getId() {    
  12.         return id;    
  13.     }    
  14.     
  15.     public void setId(Long id) {    
  16.         this.id = id;    
  17.     }    
  18.     
  19.     public String getName() {    
  20.         return name;    
  21.     }    
  22.     
  23.     public void setName(String name) {    
  24.         this.name = name;    
  25.     }    
  26.     
  27.     public String getPwd() {    
  28.         return pwd;    
  29.     }    
  30.     
  31.     public void setPwd(String pwd) {    
  32.         this.pwd = pwd;    
  33.     }    
  34.     
  35.     public Long getAge() {    
  36.         return age;    
  37.     }    
  38.     
  39.     public void setAge(Long age) {    
  40.         this.age = age;    
  41.     }    
  42.     
  43.     public Long getSex() {    
  44.         return sex;    
  45.     }    
  46.     
  47.     public void setSex(Long sex) {    
  48.         this.sex = sex;    
  49.     }       
  50.     
  51. }   
6、配置User映射文件  
创建包com.hsinghsu.testSSI.data。该包主要放置对应类的映射文件。  
新建User.xml,添加其sql的映射  
代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>      
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"      
  3.      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">    
  4.     
  5. <mapper namespace="UserMapper">    
  6.     
  7.     <!-- select 语句,传参一个,返回User对象 。注:select id as id,name as name,pwd as pwd     
  8.         的as后面的名称要与User类中属性名称要一一对应 -->    
  9.     <select id="getUserByName" parameterType="String"    
  10.         resultType="com.hsinghsu.testSSI.model.User">    
  11.         select    
  12.         id as id,name as name,pwd as pwd    
  13.         from T_TEST_USER    
  14.         WHERE NAME = #{name}    
  15.     </select>    
  16.     
  17.     <insert id="insertUser" parameterType="com.hsinghsu.testSSI.model.User">    
  18.         insert into    
  19.         T_TEST_USER(ID,NAME,PWD,AGE,SEX)    
  20.         values(#{id},#{name},#{pwd},#{age},#{sex})    
  21.     </insert>    
  22.     
  23. </mapper>  
五、编写java代码  
1、编写DAO接口  
新建包com.hsinghsu.testSSI.dao,创建接口UserDao。  
UserDao.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.dao;    
  2.     
  3. import com.hsinghsu.testSSI.model.User;    
  4.     
  5. public interface UserDao {    
  6.         
  7.     public User getUserByName(String name);    
  8.     
  9. }   
2、编写DAO实现  
新建包com.hsinghsu.testSSI.dao.impl,创建实现类UserDaoImpl。  
UserDaoImpl.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.dao.impl;    
  2.     
  3. import java.util.ArrayList;    
  4. import java.util.HashMap;    
  5. import java.util.List;    
  6. import java.util.Map;    
  7.     
  8. import org.mybatis.spring.support.SqlSessionDaoSupport;    
  9. import org.springframework.stereotype.Repository;    
  10.     
  11. import com.hsinghsu.testSSI.dao.UserDao;    
  12. import com.hsinghsu.testSSI.model.User;    
  13.     
  14. @Repository(value = "userDao")    
  15. public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {    
  16.     
  17.     @Override    
  18.     public User getUserByName(String name) {    
  19.     
  20.         User user = new User();    
  21.     
  22.         // select语句,传入一个参数,返回User对象  -------------------------------------------------------------------------    
  23.         user = getSqlSession().selectOne("UserMapper.getUserByName", name);// select语句,传入一个参数,返回User对象    
  24.     
  25.         //insert语句,传入一个对象  -------------------------------------------------------------------------------------    
  26.         User oneUser = new User();    
  27.         oneUser.setId(Long.parseLong("6"));    
  28.         oneUser.setName("go07");    
  29.         oneUser.setPwd("pesd07");    
  30.         oneUser.setAge(Long.parseLong("25"));    
  31.         oneUser.setSex(Long.parseLong("1"));    
  32.         //int result = getSqlSession().insert("UserMapper.insertUser",oneUser);//insert语句,传入一个对象    
  33.         //System.out.println("insert result:"+result);    
  34.             
  35.     
  36.         return user;    
  37.     }    
  38.     
  39. }   
3、修改action类  
编辑修改LoginAction类。  
LoginAction.java文件代码如下:
[java]  view plain copy
  1. package com.hsinghsu.testSSI.action;    
  2.     
  3. import org.springframework.beans.factory.annotation.Autowired;    
  4.     
  5. import com.hsinghsu.testSSI.dao.UserDao;    
  6. import com.hsinghsu.testSSI.model.User;    
  7.     
  8. public class LoginAction extends BaseAction {    
  9.     
  10.     /**   
  11.      *    
  12.      */    
  13.     private static final long serialVersionUID = -439437585357651788L;    
  14.     
  15.     @Autowired    
  16.     private UserDao userDao;    
  17.     
  18.     private User user;    
  19.     
  20.     private String username;    
  21.     private String password;    
  22.     
  23.     public String execute() throws Exception {    
  24.         user = userDao.getUserByName(username);    
  25.         if (user != null) {    
  26.             if (user.getPwd().equals(password)) {    
  27.                 return SUCCESS;    
  28.             }    
  29.         }    
  30.         return ERROR;    
  31.     }    
  32.     
  33.     public String getUsername() {    
  34.         return username;    
  35.     }    
  36.     
  37.     public void setUsername(String username) {    
  38.         this.username = username;    
  39.     }    
  40.     
  41.     public String getPassword() {    
  42.         return password;    
  43.     }    
  44.     
  45.     public void setPassword(String password) {    
  46.         this.password = password;    
  47.     }    
  48.     
  49. }    
4、新建用户登录页面。  
添加login.jsp。  
login.jsp文件代码如下:
[html]  view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>    
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
  3. <html>    
  4. <head>    
  5. <title>Insert title here</title>    
  6. </head>    
  7. <body>    
  8.     <form action="mylogin.action" method="post">      
  9.         Username:<input type="text" name="username"/><br/>      
  10.         Password:<input type="password" name="password"/><br/>      
  11.         <input type="submit" value="Submit"/>       
  12.     </form>    
  13. </body>    
  14. </html>  
5、修改struts.xml配置文件  
struts.xml文件代码如下:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>    
  2.     
  3. <!DOCTYPE struts PUBLIC    
  4.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
  5.     "http://struts.apache.org/dtds/struts-2.3.dtd">    
  6.     
  7. <struts>    
  8.     <constant name="struts.objectFactory" value="spring" />    
  9.     <constant name="struts.i18n.encoding" value="UTF-8" />    
  10.     <constant name="struts.i18n.reload" value="false" />    
  11.     <constant name="struts.configuration.xml.reload" value="false" />    
  12.     <constant name="struts.custom.i18n.resources" value="globalMessages" />    
  13.     <constant name="struts.action.extension" value="action,," />    
  14.     
  15.     <constant name="struts.convention.package.locators.basePackage"    
  16.               value="com.hsinghsu.testSSI.action" />    
  17.     <constant name="struts.convention.result.path" value="/" />    
  18.     <constant name="struts.serve.static" value="true" />    
  19.     <constant name="struts.serve.static.browserCache" value="false" />    
  20.         
  21.         
  22.     <package name="com.hsinghsu.testSSI.action.test" extends="struts-default">    
  23.         <action name="login" class="com.hsinghsu.testSSI.action.LoginAction">    
  24.             <result name="success">/jsp/welcome.jsp</result>    
  25.         </action>    
  26.             
  27.         <action name="mylogin" class="com.hsinghsu.testSSI.action.LoginAction">     
  28.             <result name="success">/jsp/welcome.jsp</result>    
  29.             <result name="error">/jsp/login.jsp</result>    
  30.         </action>    
  31.     </package>    
  32.         
  33. </struts>  
6、运行tomcat,在浏览器中输入http://localhost:8686/testSSI/jsp/login.jsp 会显示登录页面,如果成功会显示welcome 。失败则会继续要求登录。  
  
注:i.文件结构为:/src/main/resources,src/main/java,并将其添加到build path中。【Java Build Path - Add Folder】  
ii./src/main/resources下文件有:struts.xml、applicationContext.xml、jdbc.oracle.properties、sqlMapConfigMybatis.xml  
src/main/java下包结构为:com.hsinghsu.testSSI.model、com.hsinghsu.testSSI.dao、com.hsinghsu.testSSI.dao.impl、com.hsinghsu.testSSI.data、com.hsinghsu.testSSI.action。  
iii.修改web的输出目录,Java Build Path - Default output folder:testSSI/WebContent/WEB-INF/classes。  
iv.添加jar包时将jar包放在WebContent/WEB-INF/lib文件夹下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值