spring表單標簽


在springmvc項目開發時,一般使用EL表達式和JSTL標簽來完成頁面視圖,其實spring也有自己的一套表單標簽庫,通過spring表單標簽,可以很容易的將模型數據中的表單/命令對象綁定到html表單元素中。在使用spring表單標簽之前,必須在jsp頁面中添加一行引用spring標簽庫的聲明,引入標簽聲明后就可以使用spring表單標簽了。代碼如下

<%@taglib prefix="fm" uri="http://www.springframework.org/tags/form" %>

<fm:form method="post" modelAttribute="user">
    用戶編碼:<fm:input path="userCode"/><br/>
    用戶名稱:<fm:input path="userName"/><br/>
    用戶密碼:<fm:password path="password"/><br/>
    用戶生日:<fm:input path="birthday" Class="Wdate" readonly="readonly" onclick="WdatePicker();"/><br/>
    用戶地址:<fm:input path="address"/><br/>
    聯系電話:<fm:input path="phone"/><br/>
    用戶角色:
    <fm:radiobutton path="userRole" value="1"/>系統管理員
    <fm:radiobutton path="userRole" value="2"/>經理
    <fm:radiobutton path="userRole" value="3"/>普通用戶
    <br/>
    <input type="submit" value="保存"/>
</fm:form>

在上述代碼中的<fm:form>標簽的modelAttribute屬性用來指定綁定的模型屬性,若該屬性不指定,默認從模型中嘗試獲取名為"command"的表單對象,若不存在此表單對象,將會報錯,所以一般情況下,都會指定modelAttribute。還有<fm:input/>、<fm:password/>、<fm:radiobutton/>等標簽,基本上這些標簽都擁有以下屬性:

  • path:屬性路徑,表示表單對象屬性,如userName、userCode等

spring的常用表單標簽

<fm:form/>        渲染表單元素

<fm:input/>        輸入框組件標簽

<fm:password/>      密碼框組件標簽    

<fm:hidden/>        隱藏框組件標簽 

<fm:textarea/>        多行輸入框組件標簽

<fm:radiobutton/>     單選按鈕組件標簽 

<fm:checkbox/>      復選框組件標簽

<fm:select/>         下拉列表組件標簽

<fm:errors/>        顯示表單數據校驗所對應的錯誤信息

我們還發現form並沒有指定action屬性,這是因為通常我們通過get請求訪問含有表單的頁面,通過post請求提交表單頁面,那么最簡單的做法就是:獲取表單頁面和提交表單頁面的url地址是相同的,通過判斷method是get還是post,就可以確定需要進入到哪個控制器的處理方法進行請求的處理,所以<fm:form>標簽無需通過action屬性指定表單提交的目標url。換句話說,當不指定目標url時,會自動提交到獲取表單頁面的url(如/user/add.html),如下

@RequestMapping(value = "/add.html", method = RequestMethod.GET)
public String add(@ModelAttribute("user") User user){
    return "user/useradd";
}

@RequestMapping(value = "add.html", method = RequestMethod.POST)
public String addSave(User user, HttpSession session){
    user.setCreatedBy(((User)session.getAttribute("userSession")).getId());
    user.setCreationDate(new Date());
    if (userService.add(user)){
        return "redirect:/user/userlist.html";
    }
    return "user/useradd";
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM