struts2.0(80-90)

import com.test.service.UserService;

 

public class SaveUserAction extends ActionSupport

{

    private User user;

    private UserService service;

 

    public User getUser()

    {

       return user;

    }

 

    public void setUser(User user)

    {

       this.user = user;

    }

 

    public UserService getService()

    {

       return service;

    }

 

    public void setService(UserService service)

    {

       this.service = service;

    }

 

    @Override

    public String execute() throws Exception

    {

       this.service.save(this.user);

 

       return SUCCESS;

    }

 

    @Override

    @SuppressWarnings("unchecked")

    public void validate()

    {

       Map map = this.getFieldErrors();

       Set set = map.keySet();

 

       for (Iterator iter = set.iterator(); iter.hasNext();)

       {

           System.out.println(map.get(iter.next()));

       }

    }

}

編寫後面的servicedao

國際化,在src下建立資源文件:struts.properties

struts.custom.i18n.resources=globalMessages//可以用視圖形式添加,並且中文能自動轉換

src下添加中英文資源文件

globalMessages_en.properties

firstname=firstname

lastname=lastname

age=age

globalMessages_zh.properties

firstname=/u59D3

lastname=/u540D

age=/u5E74/u9F84

頁面顯示:

   <s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>

上面的方式是取到資源文件內容

<s:textfield name="user.firstname" label="firstname></s:textfield>//靜態文本形式

 

Dao的編寫:

package com.test.dao;

 

import java.util.List;

 

import com.test.bean.User;

 

public interface UserDAO

{

    public void saveUser(User user);

 

    public void removeUser(User user);

 

    public User findUserById(Integer id);

 

    public List<User> findAllUsers();

 

    public void updateUser(User user);

}

建立實現類

package com.test.dao.impl;

 

import java.util.List;

 

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

 

import com.test.bean.User;

import com.test.dao.UserDAO;

 

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO

{

 

    @SuppressWarnings("unchecked")

    public List<User> findAllUsers()

    {

       String hql = "from User user order by user.id desc";

       return (List<User>)this.getHibernateTemplate().find(hql);

    }

 

    public User findUserById(Integer id)

    {

       User user = (User) this.getHibernateTemplate().get(User.class, id);

       return user;

    }

 

    public void removeUser(User user)

    {

       this.getHibernateTemplate().delete(user);

    }

 

    public void saveUser(User user)

    {

       this.getHibernateTemplate().save(user);

    }                                                      

 

    public void updateUser(User user)

    {

       this.getHibernateTemplate().update(user);

    }

 

}

建立服務層代碼:

package com.test.service;

 

import java.util.List;

 

import com.test.bean.User;

 

public interface UserService

{

    public List<User> findAll();

 

    public void save(User user);

 

    public void delete(User user);

 

    public User findById(Integer id);

 

    public void update(User user);

}

服務的實現:

package com.test.service.impl;

 

import java.util.List;

 

import com.test.bean.User;

import com.test.dao.UserDAO;

import com.test.service.UserService;

 

public class UserServiceImpl implements UserService

{

    private UserDAO userDao;

 

    public UserDAO getUserDao()

    {

       return userDao;

    }

 

    public void setUserDao(UserDAO userDao)

    {

       this.userDao = userDao;

    }

 

    public void delete(User user)

    {

       this.userDao.removeUser(user);

    }

 

    public List<User> findAll()

    {

       return this.userDao.findAllUsers();

    }

 

    public User findById(Integer id)

    {

       return this.userDao.findUserById(id);

    }

 

    public void save(User user)

    {

       this.userDao.saveUser(user);

    }

 

    public void update(User user)

    {

       this.userDao.updateUser(user);

    }

 

}

配置strut.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="user" extends="struts-default">

      

       <action name="saveUser" class="saveUserAction">//classspring管理的實例

           <result name="success" type="redirect">listUser.action</result>

           <result name="input">/save.jsp</result>

       </action>

      

       <action name="listUser" class="listUserAction">

           <result>/list.jsp</result>

       </action>

      

       <action name="deleteUser" class="removeUserAction">

           <result name="success" type="redirect">listUser.action</result>

       </action>

       

    </package>

</struts>

配置spring文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans

    xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!-- 配置連接池 -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

    <property name="url" value="jdbc:mysql://localhost:3306/mytest"></property>

    <property name="username" value="root"></property>

    <property name="password" value="root"></property>

    <property name="maxActive" value="100"></property><!-- 活動鏈接數 -->

    <property name="maxIdle" value="30"></property><!-- 最大可空閒數 -->

    <property name="maxWait" value="500"></property><!-- 最大等待鏈接 -->

    <property name="defaultAutoCommit" value="true"></property><!-- 沒有顯示使用事務,設爲true,執行完一個提交一個;使用事務就設置爲false -->

</bean>

 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    <property name="dataSource" ref="dataSource"></property>

    <property name="hibernateProperties">

       <props>

           <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

           <prop key="hibernate.show_sql">true</prop>

       </props>

    </property>

    <property name="mappingResources">

       <list>

           <value>com/test/bean/User.hbm.xml</value>

       </list>

    </property>

</bean>

 

<bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">

    <property name="sessionFactory">

       <ref bean="sessionFactory"/>

    </property>

</bean>

 

<bean id="userService" class="com.test.service.impl.UserServiceImpl">

    <property name="userDao" ref="userDao"></property>

</bean>

 

<bean id="saveUserAction" class="com.test.action.user.SaveUserAction" scope="prototype">

    <property name="service" ref="userService"></property>

</bean>

 

<bean id="listUserAction" class="com.test.action.user.ListUserAction" scope="prototype">

    <property name="service" ref="userService"></property>

</bean>

 

<bean id="removeUserAction" class="com.test.action.user.RemoveUserAction" scope="prototype">

    <property name="service" ref="userService"></property>

</bean>

 

</beans>

 

加載順序:先加載struts-default.xmlstruts-plugin.xml struts.xml

整合的時候把:asm2.2.3.jar去掉,與hibernate包衝突

過濾辦法:

把頁面和struts2默認就是utf-8MySQL也設置成utf-8比設置其他過濾器都好

 

列表action

package com.test.action.user;

 

import java.util.Map;

 

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.test.service.UserService;

 

public class ListUserAction extends ActionSupport

{

    private UserService service;

 

    public UserService getService()

    {

       return service;

    }

 

    public void setService(UserService service)

    {

       this.service = service;

    }

 

    @SuppressWarnings("unchecked")

    @Override

    public String execute() throws Exception

    {

       Map request = (Map) ActionContext.getContext().get("request");

 

       request.put("list", service.findAll());

 

       return SUCCESS;

    }

}

顯示頁面:

<%@ 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>My JSP 'list.jsp' starting page</title>

 

    <script type="text/javascript">

    function del()

    {

       if(confirm("你真的想刪除該記錄麼?"))

       {

           return true;

       }

       return false;

    }

    </script>

 

  </head>

 

  <body>

  

   <h1><font color="red"><center>Users List</center></font></h1>

  

   <table border="1" width="80%" align="center">

  

   <tr>

        <td>序號

        </td>

       

        <td>

        </td>

       

        <td>

        </td>

       

        <td>年齡

        </td>

       

        <td>刪除

        </td>

       

        <td>更新

        </td>

  

   </tr>

  

   <s:iterator value="#request.list" id="us">

        <tr>

           <td><s:property value="#us.id"/>

           </td>

          

           <td><s:property value="#us.firstname"/>

           </td>

          

           <td><s:property value="#us.lastname"/>

           </td>

          

           <td><s:property value="#us.age"/>

           </td>

          

           <td><s:a href="deleteUser.action?user.id=%{#us.id}" onclick="return del();">delete</s:a>

           </td>

          

           <td><s:a href="updatePUser.action?user.id=%{#us.id}">update</s:a>

           </td>

        </tr>

   </s:iterator>

  

  

   </table>

  

  

  </body>

</html>

 

配置listaction:和spring見上面

校驗框架:第一種配置,校驗框架
SaveUserAction
校驗,建立SaveUserAction-validation.xml文件,如果是屬性校驗,就用SaveUserAction-屬性名-validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

 

<!--

<validators>

    <field name="user.firstname">

       <field-validator type="requiredstring">

           <message>required first name</message>

       </field-validator>

    </field>

   

    <field name="user.lastname">

       <field-validator type="requiredstring">

           <message>required last name</message>

       </field-validator>

    </field>

   

    <field name="user.age">

       <field-validator type="required">

           <message>required age</message>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章