文章目录

环境: myeclipse10 ,mysql ,jdk6.0

目录结构:

一、新建web project

二、在src目录下新建struts.xml  ,使用include是为了方便分开各个action

\

<?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"&gt;

<struts>
<!– 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 –>
<constant name="struts.i18n.encoding" value="UTF-8" />
<!– 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 –>
<constant name="struts.serve.static.browserCache" value="false" />
<!– 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 –>
<constant name="struts.configuration.xml.reload" value="true" />
<!– 开发模式下使用,这样可以打印出更详细的错误信息 –>
<constant name="struts.devMode" value="true" />
<include file="admin.xml" />

</struts>

还有admin.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"&gt;

<struts>
<package name="admin" extends="struts-default">
<action name="admin_*" class="adminAction" method="{1}">
<result name="login">
/backend/main.jsp <!– 页面跳转 –>
</result>
<result name="delSuc" type="redirectAction">
<param name="actionName">admin_login</param> <!– action跳转 –>
</result>

    &lt;/action&gt;
&lt;/package&gt;

</struts>

三、在src目录增加hibernate.cfg.xml

\

<?xml version=’1.0’ encoding=’UTF-8’?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;

<!– Generated by MyEclipse Hibernate Tools. –>
<hibernate-configuration>

&lt;session-factory&gt;
    &lt;mapping resource=&quot;com/d3/d3studio/model/Admin.hbm.xml&quot; /&gt;

&lt;/session-factory&gt;

</hibernate-configuration>

四、在WEB-INF增加applicationContext.xml

\

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:context="http://www.springframework.org/schema/context&quot;
xmlns:aop="http://www.springframework.org/schema/aop&quot; xmlns:tx="http://www.springframework.org/schema/tx&quot;

xsi:schemaLocation=&quot;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
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        &quot;&gt;

&lt;bean id=&quot;dataSource&quot; class=&quot;com.mchange.v2.c3p0.ComboPooledDataSource&quot;&gt;
    &lt;!-- 指定连接数据库的JDBC驱动 --&gt;
    &lt;property name=&quot;driverClass&quot;&gt;
        &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;
     &lt;/property&gt;
    &lt;!-- 连接数据库所用的URL --&gt;
    &lt;property name=&quot;jdbcUrl&quot;&gt;
        &lt;value&gt;jdbc:mysql://localhost:3306/pacs&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 连接数据库的用户名 --&gt;
    &lt;property name=&quot;user&quot;&gt;
        &lt;value&gt;root&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 连接数据库的密码 --&gt;
    &lt;property name=&quot;password&quot;&gt;
        &lt;value&gt;root&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 设置数据库连接池的最大连接数 --&gt;
    &lt;property name=&quot;maxPoolSize&quot;&gt;
        &lt;value&gt;20&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 设置数据库连接池的最小连接数 --&gt;
    &lt;property name=&quot;minPoolSize&quot;&gt;
        &lt;value&gt;2&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 设置数据库连接池的初始化连接数 --&gt;
    &lt;property name=&quot;initialPoolSize&quot;&gt;
        &lt;value&gt;2&lt;/value&gt;
    &lt;/property&gt;
    &lt;!-- 设置数据库连接池的连接的最大空闲时间,单位为秒 --&gt;
    &lt;property name=&quot;maxIdleTime&quot;&gt;
        &lt;value&gt;20&lt;/value&gt;
    &lt;/property&gt;
&lt;/bean&gt;
&lt;bean id=&quot;sessionFactory&quot;
    class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot;&gt;
    &lt;property name=&quot;dataSource&quot;&gt;
        &lt;ref bean=&quot;dataSource&quot; /&gt;
    &lt;/property&gt;
     &lt;property name=&quot;hibernateProperties&quot;&gt;   
         &lt;props&gt;   
             &lt;prop key=&quot;hibernate.dialect&quot;&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt;   
             &lt;prop key=&quot;hibernate.show_sql&quot;&gt;true&lt;/prop&gt;   
             &lt;prop key=&quot;hibernate.fromat_sql&quot;&gt;true&lt;/prop&gt; 
             &lt;prop key=&quot;hibernate.generate_statistics&quot;&gt;true&lt;/prop&gt;   
             &lt;prop key=&quot;hibernate.connection.release_mode&quot;&gt;auto&lt;/prop&gt;   
             &lt;prop key=&quot;hibernate.autoReconnect&quot;&gt;true&lt;/prop&gt;   
             &lt;prop key=&quot;hibernate.cache.use_query_cache&quot;&gt;true&lt;/prop&gt;
             &lt;prop key=&quot;cache.use_second_level_cache&quot;&gt;true&lt;/prop&gt;
             &lt;prop key=&quot;hibernate.cache.provider_class&quot;&gt;org.hibernate.cache.EhCacheProvider&lt;/prop&gt; 

         &lt;/props&gt;   
     &lt;/property&gt; 
    &lt;property name=&quot;mappingResources&quot;&gt;
        &lt;list&gt;
            &lt;value&gt;com/d3/pacs/model/Admin.hbm.xml&lt;/value&gt;         &lt;-- 对应model包里的映射 --&gt;
        &lt;/list&gt;
    &lt;/property&gt;
&lt;/bean&gt;

&lt;bean id=&quot;txManager&quot;
    class=&quot;org.springframework.jdbc.datasource.DataSourceTransactionManager&quot;&gt;
    &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot; /&gt;
&lt;/bean&gt;
&lt;tx:annotation-driven transaction-manager=&quot;txManager&quot; /&gt;
&lt;-- 使用spring的注入  --&gt;
&lt;bean id=&quot;adminDAO&quot; class=&quot;com.d3.pacs.dao.AdminDAO&quot;&gt;
&lt;property name=&quot;sessionFactory&quot; ref=&quot;sessionFactory&quot; /&gt;
&lt;/bean&gt;
&lt;bean id=&quot;adminService&quot; class=&quot;com.d3.pacs.service.AdminService&quot;&gt;
    &lt;property name=&quot;adminDAO&quot; ref=&quot;adminDAO&quot; /&gt;
&lt;/bean&gt;
&lt;bean id=&quot;adminAction&quot; class=&quot;com.d3.pacs.action.AdminAction&quot; scope=&quot;prototype&quot;&gt;
    &lt;property name=&quot;adminService&quot; ref=&quot;adminService&quot; /&gt;
&lt;/bean&gt;

</beans>

五、web.xml需要修改

\

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"&gt;
<display-name></display-name>
<!– 配置struct2–>
<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>

&lt;!-- 启动Spring容器 --&gt;
&lt;listener&gt;
    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
&lt;/listener&gt;
&lt;!-- 默认启动项 --&gt;

<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>

六、编写action

\

public class AdminAction extends ActionSupport {
private static Logger logger = Logger.getLogger(AdminAction.class);
private AdminService adminService;
private Admin admin;

public AdminService getAdminService() {
    return adminService;
}

public void setAdminService(AdminService adminService) {
    this.adminService = adminService;
}

public Admin getAdmin() {
    return admin;
}

public void setAdmin(Admin admin) {
    this.admin = admin;
}

// 管理员登陆
public String login() {
    if(adminService.login(admin) !=null){
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpSession session = request.getSession(true);
        session.setAttribute(&quot;admin1&quot;, admin);
        return &quot;login&quot;;
    }
    else
        return &quot;loginFail&quot;;
}

// 管理员注册
public String regist() {
    return &quot;regist&quot;;
}

// 退出管理员
public String exit() {
    HttpServletRequest request = ServletActionContext.getRequest();
    request.getSession().removeAttribute(&quot;admin1&quot;);
    return &quot;exit&quot;;
}

}

七、   访问流程: 在jsp中提交action    提交表单<form id="login" action="/my/admin_login" method="post">    

/my是我的tomcat自己定义的虚拟目录,   admin* 对应的是admin.xml中 <action name="admin*" class="adminAction" method="{1}">

访问admin_login  对应的就是action类中的public String login()的方法 ,根据此方法返回的String 

对应的也是admin.xml 中 ,返回login则会跳刀main.jsp

<result name="login">        

               /backend/main.jsp   <!– 页面跳转 –>

            </result>

             <result name="regist">        

               /backend/main.jsp   <!– 页面跳转 –>

            </result>

             <result name="delSuc" type="redirectAction">  

               <param name="actionName">admin_login</param> <!– action跳转 –>

            </result>

另外,struts会自动匹配类属性和jsp中name

比如: 

jsp里面有  :  <INPUT class=TxtUserNameCssClass maxLength=20 name="name">

对应在action里面,如果有name的属性,只要提供get,set方法,那么jsp中的name就会传到action

另外还可以:    <INPUT class=TxtUserNameCssClass maxLength=20 name="admin.name">

对应action里面有个admin的类属性且 admin有name属性, 则会赋值

下载地址: 
SSH框架模板,已搭建完毕
 
点击下载

文章目录