表單內容:
java
<body> <form action="user/login"> <table> <tr> <td>用戶名:</td> <td><input type="text" name="userName" /> </td> <td>密碼:</td> <td><input type="password" name="passWord" /> </td> </tr> <tr> <td colspan="2"><input type="submit" value="login" name="login" /></td> </tr> </table> </form> </body>
from標籤若是沒有定義method類型,默認是get, 今天配置mvc出現的問題是在jsp頁面傳過去的參數,獲取它的值時若是是中文會出現亂碼,也定義了字符集過濾器,後來才找出這個問題,原來是get請求致使的。web
過濾器能夠本身寫也能夠直接使用現有的如:org.springframework.web.filter.CharacterEncodingFilter ,而後再web.xml中添加如下代碼:spring
<!-- filter 字符串過濾器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter>
Controller中的代碼:mvc
@RequestMapping("/login") public String login(@ModelAttribute("user") TUser user) { try { TUser temp = userServer.login(user.getUserName, user.getPassWord()); if (temp != null) return "success"; } catch (Exception ex) { ex.printStackTrace(); } return "error"; }
ModelAttribute 是以對象的形式接受Post 過來的表單參數。app
另外還有如下方式:jsp
public String login(@RequestParam String username,@RequestParam String password) { System.out.println("username:"+username+" password"+password); TUser user=userServer.login(username, password); if(user!=null) return "success"; return "error"; }
@RequestParam是請求參數,並且參數名必須是對應的username,passwordspa