我的任務是創建我的控制器而不是在方法簽名處傳遞任何參數。 我很困惑,因爲這是相當的挑戰,我沒有真正看到任何網絡上的例子。 例如:從我的jsp頁面。spring-mvc:如何在控制器中傳遞mvc中沒有方法參數的參數
<form:form method="POST" action="/project/searchResults" id="productSearchResultsForm">
<input name="productRecord" id="productRecord" />
<input name="resultEntity" id="resultEntity" type="hidden" />
<input name="resultCode" id="resultCode" type="hidden" />
<button type="submit" class="btn btn-primary btn-lg">Submit</button>
</form:form>
我想將這三個輸入傳遞給我的控制器,而不在方法簽名處使用@RequestParameter和@ModelAttribute。截至目前,這是我知道如何做到這一點的唯一途徑。
@RequestMapping(value = "/productSearch", method = RequestMethod.GET)
public ModelAndView init(@ModelAttribute ("showroomCode") String showroomCode, HttpServletRequest request) {
logger.info("<<<< initial page <<<<<<");
logger.info("Showroom Code : " + showroomCode);
HttpSession session = request.getSession();
ModelAndView model = new ModelAndView("productSearch", "command",
String.class);
ShowroomUser user = new ShowroomUser();
user.setUserId(1);
session.setAttribute("usersession", user);
session.setAttribute("showroomCode", showroomCode);
logger.info(">>>>> initial page >>>>> ");
return model;
}
我知道,在Struts 2中,你可以在Action類中聲明全局變量,這樣可以自動的方法使用,而不必從字面上把他們在方法簽名。有沒有辦法刪除這個?
謝謝。
更新
我不願使用HttpServlet的請求和模型屬性在代碼中所有的任何地方。 :( 請幫忙!
您的控制器的同一個實例用於所有請求,有一個全局變量的解決方案不會與併發請求正常工作... – Adam 2014-09-29 13:47:07
感謝亞當,你會知道的任何如何在spring-mvc中執行此操作? – 2014-09-29 13:48:58
您可以將HttpServletRequest請求添加到您的方法,然後使用一系列request.getParameter()調用,如果您擔心您的方法有太多的參數... – Adam 2014-09-29 13:54:46