Spring MVC:表单处理卷。 4 –单选按钮

在软件开发领域,单选按钮是图形用户界面的重要组成部分。 Spring MVC标签库为此表单元素提供了特殊标签。 更确切地说,有两个标签用于此目的:单选按钮,单选按钮。 两者对于特定任务都是有用的。 如您所知,我将在帖子中展示如何使用这些标签。

如果您熟悉我以前关于Spring MVC标签库的教程,特别是使用checkboxcheckboxes标签,那么本教程对您来说并不困难。 单选按钮(-s)标记的大部分解释将是多余的,因为一切都与复选框(-es)标记的示例相同。
您可以在GitHub上找到这篇文章中代码的完整版本。

单选按钮:字符串

在本节中,我将研究在同一页面上多次使用单选按钮标记的情况。 结果将表示为字符串对象。 这是此示例的POJO:

public class TableReserve {

	private String smokeZone;

	public String getSmokeZone() {
		return smokeZone;
	}

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

}

这是一个控制器,它将处理与表保留有关的操作:

@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;
	}

}

在控制器中,一切都与通常情况相同。 如果您根本不了解Spring MVC控制器如何与表单交互,则可以阅读我有关表单处理的文章。

以下是适当视图的代码片段:

...
<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>
...

...
<h1>Table Reserve result page</h1>
Do you choose smoking table? <br />
Answer is: [ <b>${tableReserve.smokeZone}</b> ] <br />
...

这是第一个示例。

单选按钮:字符串

在本节中,我将考虑需要在运行时为单选按钮生成值的情况。 为此,我将在java.util.List对象中添加单选按钮的所有值(与checkboxes标记一样,您可以使用简单数组或java.util.Map对象)。

这是第二个示例的POJO:

public class Sport {

	private String favSport;

	public String getFavSport() {
		return favSport;
	}

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

}

合适的控制器:

@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;
	}

}

如您所知,sportList包含我决定在运行时生成的值。

观看次数:

...
<h1>Sport page</h1>
<form:form method="POST" commandname="sport" action="sport-result.html">
<table>
    <tbody><tr>
    <td>
	    <ul>
	    	<form:radiobuttons element="li" path="favSport" items="${sportList}">
	    </form:radiobuttons></ul>
    </td>
    </tr>
    <tr>
        <td>
            <input value="Submit" type="submit">
        </td>
    </tr>
</tbody></table>  
</form:form>
...

...
<h1>Sport result page</h1>
Your favorite sport is: ${sport.favSport}
...

摘要

这样,您可以在表单中添加单选按钮,您正在使用Spring MVC处理这些单选按钮。 标记库为所有表单控件的实现提供了简单的决策。 您只需要创建一个表单,对应的POJO,将其绑定在一起即可。


翻译自: https://www.javacodegeeks.com/2013/05/spring-mvc-form-handling-vol-4-radiobuttons.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值