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");