项目的一点实践经验

1. 单选按钮

页面上单选按钮选中,点击确定,查询后返回本页面,单选按钮为被选中
解决:使用 JSTL表达是的c:if ,用一个标记变量,如果test判断成功就将radio的checked属性置为true,如:

<input type="radio" value="" name="" <c:if test="${flag == 1}"> checked="true" </c:if> 

2.多选按钮的实现

使用c:foreache 循环将所有的循环前面加上checkbox组件,使名字相同,这样在后端进行绑定的时候在controller中的函数的参数上使用和checkbox组件name属性相同的名字的数据就可以把所有的勾选的数据全部传过来了,如:

前端:
<c:foreach item="" var="">
   <input type="checkbox" name="id" value="${这里的值不相同}" />
</c:foreach>

后端:

public String f(String[] id){} //用名字为id的数组就能把勾选的checkbox的value值全部接收过来

全选多选按钮

function allSelect() {
    var obj = document.getElementsByName("deleteSome");//""中为多选按钮的name
    var length = obj.length;
    for(var i = 0;i < length;i++){
        obj[i].checked = true;
    }
}

3.mybatis的mapper文件中如何输入多个参数

使用foreach 和if
foreach可以接收List ,Array,Map等数据类型,不用事先写好parameterTyep(即可以省略),如:

 <delete id="deleteSomeTeacher" >
        DELETE FROM teacher WHERE Tid IN
        <if test="array != null">
        <foreach collection="array" item="tid" open="(" close=")" separator=",">
            #{sid}
        </foreach>
        </if>
    </delete>

PS:用数组的话,collection中的为array,用自己传过去的参数的名字会报错.
collection 属性为指定输入对象中的集合属性
item 每次遍历时拼接的串
open开始遍历时拼接的串
close结束遍历时拼接的串
spearator 遍历的两个对象中间要拼接的串

4.关于Mybatis

使用关系数据库过程中,可能会有从多个表中查询所需要的数据,这个时候使用resultMap里面的association子标签,可以多个使用,如:

<resultMap id="selectFromThreeTable" type="cn.pc.exam.pojoExtends.StudentExtend">
        <id column="Sid" property="Sid" />
        <result column="Sname" property="Sname"/>
        <association property="course" javaType="cn.pc.exam.pojo.Course">
            <result column="Cname" property="Cname" />
        </association>
        <association property="mark" javaType="cn.pc.exam.pojo.Mark">
            <result column="Mscore" property="Mscore"/>
        </association>
        <association property="grade" javaType="cn.pc.exam.pojo.Grade">
            <result property="Gname" column="Gname"/>
        </association>
    </resultMap>
    <select id="selectStudentForCidGid" resultMap="selectFromThreeTable">
        SELECT s.Sid,s.Sname,cu.Cname,g.Gname,m.Mscore FROM student s,sc c,mark m,course cu,grade g
        <where>
            <if test="arg0 != ''">
                AND c.Cid = #{arg0}
            </if>
            <if test="arg1 != ''">
                AND s.SGid = #{arg1}
            </if>
            AND s.Sid = c.Sid
            AND cu.Cid = c.Cid
            AND c.Cid = m.MCId
            AND s.Sid = m.Mid
            AND g.Gid = #{arg1}
        </where>
    </select>

简单说明:
(1).resultMap中的id是唯一标识,type表示需要返回的类的名称,一般就是包含了别的类的扩展类(这个类中有需要查的数据的类作为属性)
(2).association中的property表示扩展类中的属性(是个类),也就是查询的有该属性类中的数据,并且javaType是这个属性的全限定名
(3).id标签表示类中对应数据表的主属性,result标签表示类中对应的普通属性

如果扩展类中的属性是List泛型,就使用resultMap属性中的collection标签

5.Mybatis往Mapper文件中传入多个参数包括数组

mybatis如果有多个参数传入,默认的它会按照arg0,arg1,param1,param2这两种方式进行排序,但是如果其中有数组就不容易知道默认会怎么安排,其次,默认安排的值只能按参数的一定顺序才可以,所以可以使用@Param(value=”“)注解,如下:

public void batchDelete(@Param(value = "activityId") Integer activityId, @Param(value = "userIds") Integer[] userIds);

value中的值作为mapper文件中的参数值的名字,可以按照字段名字设置,方便好记,易于理解

<insert id="batchDelete">
     delete from T_ACT_USERS where ACTIVITY_ID = #{activityId}
     and USER_ID in
     <foreach collection="userIds" item="item" index="index" open="(" separator="," close=")">
            #{item}
     </foreach>
</insert>

6.css将div中的图片和盒子分开一小块距离

不将div盒子扩大多少多少像素,使用padding:10px;将盒子撑开即可.

7.css中padding会充开盒子,使盒子变大

padding值会将盒子充开,最终盒子的大小是padding + width
解决方法:
1.将 width - padding ,将这两者的差重新规定为width;
2.使用box-sizing:border-box; (在想要加padding的里面用) 将盒子模型border 和padding 都包含到width 里面.

8.行内块元素之间的缝隙清除

行内块元素之间会有缝隙,可以将相邻的行内块进行浮动处理,来清除缝隙。 float:left;

9.如何获取select中的某一个值让他显示在第一行

给select设置一个value值,但是select标签没有value属性,使用js设置

$("select").val("value");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值