SSH纳税服务项目重点细节归纳1

1. maven ssh搭建

jar冲突maven处理
spring配置:c3p0,sessionfactory,transactionManager
c3p0 :

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
           <property name="user" value="${user}"></property>
           <property name="password" value="${password}"></property>
           <property name="driverClass" value="${driverClass}"></property>
           <property name="jdbcUrl" value="${url}"></property>

           <property name="initialPoolSize" value="${init}"></property>
           <property name="maxPoolSize" value="${max}"></property>
       </bean>     

sessionFactory : 不适用原配置文件+自动扫描entrty配置文件

<bean id="SessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
           <property name="dataSource" ref="dataSource"></property>
           <property name="hibernateProperties">
               <props>
                   <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                   <prop key="hibernate.show_sql">true</prop>
                   <prop key="hibernate.format_sql">true</prop>
                   <prop key="hibernate.hbm2ddl.auto">update</prop>
                   <prop key="javax.persistence.validation.mode">none</prop>
               </props>
           </property>
           <property name="mappingLocations">
               <list>
                   <value>classpath:com/vincent/ssh/*/entity/*.hbm.xml</value>
               </list>
           </property>
       </bean>

transactionManager : 使用注解式事务

<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
           <property name="sessionFactory" ref="SessionFactory"></property>
       </bean>

       <tx:annotation-driven transaction-manager="transactionManager"/>

web.xml配置:struts拦截器,springstruts监听器

2. 业务分层+抽取常用方法Base层+资源文件分类

Dao→Service→Action:除Action外全部从接口开始编写
这里写图片描述
BaseDao:第一次实用反射,Entry,继承HibernateDaoSupport实现CRUD基础业务(save,update,delete,list,findById)

public interface BaseDao<T> {

    public void save(T entity);

    public void update(T entity);

    public void delete(Serializable id);

    public T findObjectById(Serializable id);

    public List<T> findAll();
}

实现类用Spring注入继承类要用的SessionFactory

<bean id="xDao" abstract="true">
    <property name="sessionFactory" ref="SessionFactory"></property>
</bean>

<bean id="userDao" class="com.vincent.ssh.user.dao.impl.UserDaoImpl" parent="xDao">
</bean>
(继承父bean配置方便资源文件分类)

BaseAction:抽取页面会用到的公共属性(全选集合,分页相关元素?:尚未接触)

public abstract class BaseAction extends ActionSupport {

    protected String[] selectedRow;

3. struts-spring插件

由监听器实现?(大概),action类的创建由Spring负责处理,自用引入有@Resource注解的元素
这里写图片描述

    <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

Action类本身没有添加注解或被扫描

package com.vincent.ssh.user.action;

import com.vincent.ssh.user.service.UserService;

public class UserAction extends BaseAction {

    @Resource
    private UserService userService;

4. 琐碎

(1):jq的获取input值

$('#表单id').val();

(2):js设置响应action与控制表单提交

     document.form[0].action = "url"; 
     document.form[0].submit();   (form获取页面所有表单,下标选择类似数组)

(3):ognl获取栈顶属性不需要加任何标识符;List对象同理,在内指定value后取出内部类值可直接写属性名

用户名:<s:textfield name="user.name" cssClass="s_text" id="userName"  cssStyle="width:160px;"/>
           <s:iterator value="userList" status="st">
                <tr <s:if test="#st.odd">bgcolor="f8f8f8"</s:if>>
                    <td align="center"><input type="checkbox" name="selectedRow" value="<s:property value="id"/>"/></td>
                    <td align="center"><s:property value="name"/></td>
                    <td align="center"><s:property value="account"/></td>
                    <td align="center"><s:property value="dept"/></td>
                    <td align="center"><s:property value="gender?'男':'女'"/></td>
                    <td align="center"><s:property value="email"/></td>
                    <td align="center">
                    <a href="javascript:doEdit('<s:property value="id"/>')">编辑</a>
                    <a href="javascript:doDelete('<s:property value="id"/>')">删除</a>
                    </td>
                </tr>
            </s:iterator>

(4):标签实际应用,例子为单数行加背景

<s:iterator value="userList" status="st">
<tr <s:if test="#st.odd">bgcolor="f8f8f8"</s:if>>

(5):jsp页面的Map定义法(struts限定?)

<s:select name="user.dept" list="#{'部门A':'部门A','部门B':'部门B'}"/>

(6):js方法传值+action请求?传值
传:
<a href="javascript:doEdit('<s:property value="id"/>')">编辑</a>
接收:
function doEdit(id){
document.forms[0].action = "${basePath}ssh/user_editUI.action?user.id="+ id;
document.forms[0].submit();
}

Action方接收:user.id自动装填到User类内的id属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值