[英]How to Pass <Select> and <input> data from View to a Controller (Spring MVC)
你好希望一切都好,
我試圖傳遞用戶在視圖中填充的數據,並使用該數據執行查詢。 以下是HTML代碼。 注意:使用Thymeleaf而不是JSP
<form class="form-horizontal" action="#" data-th-action="@{/waterquality/data/search-results}" data-th-object="${groundWater}" method="get" accept-charset="utf-8">
<label id = "sectionLabel" style="text-align: right; width:109px">SECTION</label>
<select id = "section" style = "height: 25px; width: 160px; color: black">
<option data-th-replace="fragments/form-elements/ground-water-section-select-options :: ground-water-section-select-options">List of Sections</option>
</select>
<label id = "formationLabel" style="text-align: right; width:109px">Formation</label>
<input type = "text" id = "formation" />
<button type="submit" class="send_btn1" name="action" data-th-value="#{button.action.search}" data-th-text="#{button.label.search}" >Search</button>
</form>
當按下提交按鈕時,它會正確調用控制器。 以下是我的控制器代碼:
@Controller
@RequestMapping(value = "/waterquality/data")
public class GroundWaterSearchController {
static Logger logger = LoggerFactory.getLogger(GroundWaterSearchController.class);
@Autowired
private GroundWaterService groundWaterService;
@RequestMapping(value = {"", "/", "/search"}, method = RequestMethod.GET)
public String showSearchForm(Model model) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
String time = dateFormat.format(date);
model.addAttribute("time", time);
GroundWater groundWater = new GroundWater();
model.addAttribute("groundWater", groundWater);
return "waterquality/data/ground-water-search";
}
@RequestMapping(value = {"/search-results"}, method = RequestMethod.GET)
public String processSearch(@Valid @ModelAttribute GroundWater groundWater,
Model model,
@RequestParam(value = "startPostion", defaultValue = "0") Integer startPostion,) {
List<GroundWater> groundWaters = new ArrayList<GroundWater>();
groundWaters = groundWaterService.fetchListByNativeSqlQuery(groundWater, viewData);
model.addAttribute("groundWaters", groundWaters);
return "waterquality/data/ground-water-search-results";
}
}
我希望能夠從地圖或列表中的視圖中獲得數據,以便將數據發送到方法fetchListByNativeSqlQuery。 但是我不確定如何做到這一點。 有人可以提供一個示例,說明我如何將數據從View發送到控制器,以及如何從控制器發送到fetchListByNativeSqlQuery方法。
任何幫助都感激不盡。 在此先感謝一噸!
要將輸入從視圖傳遞到控制器,您需要一個name屬性。 例如,您需要以下內容:
對於輸入標簽:
<input name="formation" type="text" id="formation">
對於選擇,您需要每個選項都有一個值:
<select name="section" id="section" style="height: 25px; width: 160px; color: black">
<option value="someValue" data-th-replace="fragments/form-elements/ground-water-section-select-options :: ground-water-section-select-options">List of Sections</option>
</select>
然后,在控制器中,可以使用@RequestParam,其值等於在視圖中指定的名稱。 例如:
@RequestParam(value="section") String sectionValue, @RequestParam(value="formation") String formation
由此,您應該能夠根據您在fetchListByNativeSqlQuery()中的工作來使用數據制作地圖或列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.