關於填寫報銷單的問題

關於填寫報銷單的問題

老師請問一下,jsp頁面使用form:select的時候,
如果需要展示的數據為一個實體類Country,有ID跟NAME屬性,展現的結果如下
<option value="1">CHINA</option>
<option value="2">RUSSIA</option>
...
這樣form:select標籤跟後台傳輸的數據類型要怎麼改變呢?


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,同学的理解是正确的。但是有一点,<form:select>标签中,需要增加path,和modelAttribute中的属性对应。

祝:学习愉快~

好帮手慕小班 2020-08-20 17:18:14

同学你好,同学是想说在controller层中传递这个参数吗?

如果是,同学可以参考如下内容,添加自己的参数,比如 

map.put("countryList", 具体需要传递的数据);

http://img1.sycdn.imooc.com//climg/5f3e3f30094466a904460132.jpg

如果同学想表达的不是这个意思,还麻烦同学具体描述一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕雪7502417 #1
    謝謝老師~我弄了一段時間稍微搞清楚modelAttribute跟form:select,items,itemValue,itemLabel了。 結論大概是 1.可以利用dto的方式封裝countryList與其他實體類傳輸數據給jsp, jsp的<form:form modelAttribute="xxxDto"> 然後form:select items="${countryList}" itemValue="id" itemLabel="name" 如果沒寫itemValue跟itemLabel則jsp會顯示list的內存地址 -------------------------------- 2.不用dto傳輸,只傳form表單需要的實體類。 在controller中寫一個方法 @ModelAttribute("countryList") private Map<Long, String> getCountryList(){ List<Country> list = categoryDao.queryAll(); Map<Long, String> countryList= new HashMap<Long, String>(); for(Country c:list) { countryList.put(c.getId(), c.getName()); } return countryList; } 則jsp的<form:form modelAttribute="Xxxx">//某個實體類 form:select 只需要寫items="${countryList}"就可以正常輸出 <option value="1">CHINA</option> <option value="2">RUSSIA</option> --------------------------------------------------------------------------- 3.form表單中要提交的數據,path一定要對應到modelAttribute中的屬性 大概4這樣,不知道有沒有錯
    2020-08-20 23:00:53
好帮手慕小班 2020-08-20 14:11:47

同学你好,spring的form表单是用path来代替id和name的。所以在spring的form表单中id和name改为了path。

而同学想要在下拉列表中展示的数据为一个实体类,可以参考课程中的写法将Country类传入,比如:

参数的准备:

http://img1.sycdn.imooc.com//climg/5f3e12f1099489f305510295.jpg

参数的传递:

http://img1.sycdn.imooc.com//climg/5f3e13e109408a1c04870141.jpg

页面中数据的展示

http://img1.sycdn.imooc.com//climg/5f3e140709f83d1510660120.jpg

如上所示,同学尝试将自己的Country类传入再来试试。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕雪7502417 #1
    想再請問一下,list.add那一個部分,如果寫在controller層中的話,是不是要用@ModelAttribute("items") private Map<String> xxxx(){ //create HashMap //getList //put list //return map }來實現呢?
    2020-08-20 15:00:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师