1. 程式人生 > >Spring MVC筆記(六) springMVC標簽

Spring MVC筆記(六) springMVC標簽

etc auth del trie spring utils tla print try

記錄下SPRINGMVC常用的標簽,直接代碼,不解釋:

package com.bwy.springmvc.tag.textbox;

/**
 * @author Administrator
 *
 */
public class Student {
  private String name;
  private Integer age;
  private Integer id;
  private String passWord;
  private String address;
  private boolean agree;
  private String gender;
  private
String favoriteColor; private String country; private String[] languages; public String[] getLanguages() { return languages; } public void setLanguages(String[] languages) { this.languages = languages; } public String getCountry() { return country; } public void setCountry(String country) {
this.country = country; } public String getFavoriteColor() { return favoriteColor; } public void setFavoriteColor(String favoriteColor) { this.favoriteColor = favoriteColor; } public String getGender() { return gender; } public void setGender(String gender) { this
.gender = gender; } private String[] favoriteSports; public String[] getFavoriteSports() { return favoriteSports; } public void setFavoriteSports(String[] favoriteSports) { this.favoriteSports = favoriteSports; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public boolean isAgree() { return agree; } public void setAgree(boolean agree) { this.agree = agree; } }
package com.bwy.springmvc.tag.textbox;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class StudentController {


  @InitBinder
  private void initBinder(WebDataBinder binder) {
    binder.setValidator(new StudentValidator());
  }


  /**
   * 我們已經在ModelAndView對象中傳遞了一個名稱為“command”的空對象, 因為如果要在JSP中使用<form:form>標簽,spring框架需要一個名稱為“command”
   * 的對象文件。當調用student()方法時,它返回student.jsp視圖
   * 
   * @return
   */
  @RequestMapping(value = "/student", method = RequestMethod.GET)
  public ModelAndView student() {
    return new ModelAndView("student", "command", new Student());
  }

  @ModelAttribute("student")
  public Student createStudentModel() {
    return new Student();
  }

  /**
   * 將在URL HelloWeb/addStudent 上的POST方法調用。將根據提交的信息準備模型對象。 最後,將從服務方法返回“result”視圖,這將渲染result.jsp 頁面。
   * 
   * @param student
   * @param map
   * @return
   */
  @RequestMapping(value = "/addStudent", method = RequestMethod.POST)
  public String addStudent(@ModelAttribute("student") @Validated Student student,
      BindingResult bindingResult, Model map) {
    if (bindingResult.hasErrors()) {
      return "student";
    }
    System.out.println(student.isAgree());
    map.addAttribute("name", student.getName());
    map.addAttribute("age", student.getAge());
    map.addAttribute("id", student.getId());
    map.addAttribute("passWord", student.getPassWord());
    map.addAttribute("address", student.getAddress());
    map.addAttribute("agree", student.isAgree());
    map.addAttribute("favouriteSports", student.getFavoriteSports());
    map.addAttribute("gender", student.getGender());
    map.addAttribute("color", student.getFavoriteColor());
    map.addAttribute("country", student.getCountry());
    map.addAttribute("languages", student.getLanguages());
    return "result";
  }

  @ModelAttribute("sports")
  public List<String> getSports() {
    List<String> sports = new ArrayList<String>();
    sports.add("遊泳");
    sports.add("足球");
    sports.add("籃球");
    sports.add("跑步");
    return sports;
  }

  @ModelAttribute("colors")
  public List<String> getColors() {
    List<String> colors = new ArrayList<String>();
    colors.add("紅");
    colors.add("黃");
    colors.add("藍");
    colors.add("綠");
    colors.add("青");
    colors.add("紫");
    colors.add("白");
    return colors;
  }

  @ModelAttribute("countries")
  public Map<String, String> getCountry() {
    Map<String, String> countryList = new HashMap<>();
    countryList.put("CH", "中國");
    countryList.put("USA", "美國");
    countryList.put("TK", "土耳其");
    countryList.put("BK", "巴基斯坦");
    return countryList;
  }

  @ModelAttribute("languages")
  public List<String> getLanguages() {
    List<String> languageList = new ArrayList<String>();
    languageList.add("漢語");
    languageList.add("英語");
    languageList.add("法語");
    languageList.add("日語");
    languageList.add("德語");
    return languageList;
  }
}
package com.bwy.springmvc.tag.textbox;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

public class StudentValidator implements Validator {

  @Override
  public boolean supports(Class<?> clazz) {
    return Student.class.isAssignableFrom(clazz);
  }

  @Override
  public void validate(Object obj, Errors errors) {
    ValidationUtils.rejectIfEmpty(errors, "name", null, "Field name is required.");

  }

}
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表單之-輸入框處理</title>
</head>

<body>

    <h2>學生信息</h2>
    <form:form method="POST" action="/SpringMVCTag/addStudent" commandName="student">
        <table>
            <tr>
                <td><form:label path="name">姓名:</form:label></td>
                <td><form:input path="name" /></td>
                <td><form:errors path="name"/></td>
            </tr>
            <tr>
                <td><form:label path="age">年齡:</form:label></td>
                <td><form:input path="age" /></td>
            </tr>
            <tr>
                <td><form:label path="id">編號:</form:label></td>
                <td><form:input path="id" /></td>
            </tr>
            <tr>
                <td><form:label path="passWord">密碼:</form:label></td>
                <td><form:password path="passWord" /></td>
            </tr>
            <tr>
                <td><form:label path="address">地址:</form:label></td>
                <td><form:textarea path="address" rows="5" cols="30" /></td>
            </tr>

            <tr>
                <td><form:label path="agree">是否同意?</form:label></td>
                <td><form:checkbox path="agree" /></td>
            </tr>

            <tr>
                <td><form:label path="favoriteSports">喜歡的運動:</form:label></td>
                <td><form:checkboxes items="${sports}" path="favoriteSports" /></td>
            </tr>
            <tr>
                <td><form:label path="favoriteSports">性別:</form:label></td>
                <td><form:radiobutton path="gender" value="M" label="男" /> <form:radiobutton
                        path="gender" value="F" label="女" /></td>
            </tr>
            
            <tr>
                <td><form:label path="favoriteSports">喜歡的顏色:</form:label></td>
                <td><form:radiobuttons items="${colors}" path="favoriteColor" /></td>
            </tr>
            
            <tr>
                <td><form:label path="country">國家:</form:label></td>
                <td><form:select path="country" >
                    <form:option value="NONE" label="請選擇..."/>
                    <form:options items="${countries }"/>
                </form:select></td>
            </tr>
            
            <tr>
                <td><form:label path="languages">語言:</form:label></td>
                <td><form:select items="${languages}" path="languages" multiple="true"/></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="提交學生信息" /></td>
            </tr>
            
        </table>
    </form:form>
</body>
</html>
<%@page import="java.io.PrintWriter"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表單之-輸入框處理</title>
</head>
<body>

    <h2>提交的學生信息如下 -</h2>
    <table>
        <tr>
            <td>姓名:</td>
            <td>${name}</td>
        </tr>
        <tr>
            <td>年齡:</td>
            <td>${age}</td>
        </tr>
        <tr>
            <td>編號:</td>
            <td>${id}</td>
        </tr>
        <tr>
            <td>密碼:</td>
            <td>${passWord}</td>
        </tr>
        <tr>
            <td>地址:</td>
            <td>${address}</td>
        </tr>
        
        <tr>
            <td>是否同意:</td>
            <td>${agree}</td>
        </tr>
        
        <tr>
            <td>喜歡的運動:</td>
            <td><%String[] favouriteSports = (String[])request.getAttribute("favouriteSports");
                for(String sprots: favouriteSports){
                  //PrintWriter pw =  response.getWriter();
                  out.println(sprots);
                }
            %></td>
        </tr>
        
        <tr>
            <td>性別:</td>
            <td>${gender == "M"?"男":"女"}</td>
        </tr>
        <tr>
            <td>喜歡的顏色:</td>
            <td>${color}</td>
        </tr>
        
        <tr>
            <td>國家:</td>
            <td>${country}</td>
        </tr>
        
        <tr>
            <td>語言:</td>
            <td><%String[] languages = (String[])request.getAttribute("languages");
                for(String language: languages){
                  //PrintWriter pw =  response.getWriter();
                  out.println(language);
                }
            %></td>
        </tr>
    </table>
</body>
</html>

Spring MVC筆記(六) springMVC標簽