1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下:
<action name="*"> <result>/{1}.jsp</result> </action>
springmvc中同样可以有这种类似配置如下:
package com.mi.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestController { @RequestMapping("/{init}") public String go(@PathVariable String init){ System.out.println(init); return init; } }
我的请求路径可以是如下类型,http://localhost:8080/ssm(项目名)/xxx.do 这样会请求到名字为xxx页面的jsp上去,很好用,利用@PathVariable注解,在此记录下
2.关于mybatis中xml文件的sql语句的参数类型处置,当sql参数类型为多种不同的基本类型时,比如 id,name,age,这时参数类型应该是parameterType="int,string,int"实际会报错,这里按照此种写法应该写成
parameterType="java...."全类型写法,但是在此可以不用这么麻烦,代码如下
在dao的接口中定义的sql的方法时:
package com.mi.dao; import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import com.mi.entity.User; @Repository public interface UserInfoMapper { public List<User> queryUserInfo(@Param("beginIndex") int beginIndex,@Param("pageSize") int pageSize); }
使用@Param参数注解提供声明参数的功能,同时给出参数类型及参数名,即可解决xml中的参数类型声明问题
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mi.dao.UserInfoMapper"> <select id="queryUserInfo" resultType="com.mi.entity.User"> SELECT id,user_name userName,age FROM user_t where 1=1 limit #{beginIndex},#{pageSize} </select> <!-- <insert id="addUser" parameterType="com.mi.entity.User" flushCache="true"> INSERT INTO user_t (id,user_name,password,age) VALUES (#{id},#{userName},#{password},#{age}) </insert> <delete id="deleteUser" parameterType="com.mi.entity.User" flushCache="true"> DELETE FROM user_t where id=#{id} </delete> <update id="updateUser" parameterType="com.mi.entity.User" flushCache="true"> UPDATE user_t SET user_name = 'zzxy' WHERE id=#{id} </update> --> </mapper>