`

Spring mvc中的radiobutton

阅读更多
  在Spring mvc中处理radiobutton处理起来也十分简单,分两类情况,先看普通的
简单的radiobutton,首先是一个简单的pojo,其中内容是字符串:


public class TableReserve {

	private String smokeZone;

	public String getSmokeZone() {
		return smokeZone;
	}

	public void setSmokeZone(String smokeZone) {
		this.smokeZone = smokeZone;
	}	

}



  然后是一个controller,如下:
@Controller
public class TableReserveController {

	@RequestMapping(value="/table-reserve-page")
	public ModelAndView tableReservePage() {
		return new ModelAndView("table-reserve-form", "tableReserve", new TableReserve());		
	}

	@RequestMapping(value="/table-reserve-result")
	public ModelAndView processTableReserve(@ModelAttribute TableReserve tableReserve) {
		ModelAndView mav = new ModelAndView("table-reserve-result");
		mav.addObject("tableReserve", tableReserve);
		return mav;
	}

}



   tableReservePage这个方法是一个简单的展示radiobutton的页面而已,
其JSP模板文件为:
  
  <h1>Table Reserve page</h1>
<form:form method="POST" commandname="tableReserve" action="table-reserve-result.html">
<table>
    <tbody><tr>
        <td>Smoking</td>
        <td><form:radiobutton path="smokeZone" value="yes"></form:radiobutton></td>
    </tr>
    <tr>
        <td>No Smoking</td>
        <td><form:radiobutton path="smokeZone" value="no"></form:radiobutton></td>
    </tr>
    <tr>
        <td colspan="2">
            <input value="Submit" type="submit">
        </td>
    </tr>
</tbody></table>  
</form:form>


   请注意spring mvc中对radiobutton的写法,其中的path属性就刚好对应pojo中的smokeZone。
  table-reserve-result方法实际上是接收页面用户选择的radiobutton,然后再进行页面跳转,最后跳转到的页面是
...
<h1>Table Reserve result page</h1>
Do you choose smoking table? 

Answer is: [ <b>${tableReserve.smokeZone}</b> ] 




  如果是动态先生成的radiobuttons,也是可以的,继续看例子:

public class Sport {

	private String favSport;

	public String getFavSport() {
		return favSport;
	}

	public void setFavSport(String favSport) {
		this.favSport = favSport;
	}

}



  上面依然是简单的pojo,然后是控制器:
@Controller
public class SportController {

	@RequestMapping(value="/sport-page")
	private ModelAndView footballPage() {
		ModelAndView mav = new ModelAndView("sport-form");

		List sportList = new ArrayList();
		sportList.add("Judo");
		sportList.add("Basketball");
		sportList.add("Ping-Pong");

		mav.addObject("sportList", sportList);
		mav.addObject("sport", new Sport());

		return mav;
	}

	@RequestMapping(value="/sport-result")
	private ModelAndView processTeams(@ModelAttribute Sport sport) {
		ModelAndView mav = new ModelAndView("sport-result");
		mav.addObject("sport", sport);
		return mav;
	}

}


  则在footballPage方法中,是显示一个多个的radiobutton了,其中JSP文件为:
<h1>Sport page</h1>
<form:form method="POST" commandname="sport" action="sport-result.html">
<table>
    <tbody><tr>
    <td>
	    [list]
	    	<form:radiobuttons element="li" path="favSport" items="${sportList}">
	    </form:radiobuttons>[/list]
    </td>
    </tr>
    <tr>
        <td>
            <input value="Submit" type="submit">
        </td>
    </tr>
</tbody></table>  
</form:form>


   其中注意: <form:radiobuttons element="li" path="favSport" items="${sportList}">
的写法就可以了。

   最后,展示结果页面JSP为:
...
<h1>Sport result page</h1>
Your favorite sport is: ${sport.favSport}


 
2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics