[英]Passing value via URL to controller from JSP in Spring MVC
創建一個應用程序。 頁面A顯示包含值列表的下拉列表。 如果用戶單擊特定帳戶,將顯示一個圖表。 帳戶下拉列表的右側有類似的按鈕。 這些是單獨的JSP。 如果用戶單擊頁面A,則所選帳戶名應移至這4個jsp頁面。 我已經嘗試通過URL。 但沒有得到。 請幫忙。
JSP 1
<a id="priorityCallAnalysis" class="item"> <button type ="button" onclick="getPriorityCall()">Priority </button> </a>
<form:form action="somepage" method="post" commandName="somedata"
id="taskDetails" enctype="multipart/form-data">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>Choose Account*</label>
<form:select path="accountName" class="form-control"
id="accountName" onchange="getDashboard()">
<form:option value="" label="--select--"></form:option>
<c:forEach items="${accountList}" var="accountName">
<form:option value="${accountName}" label="${accountName}"></form:option>
</c:forEach>
</form:select>
</div>
</div>
</div>
</form:form>
function getPriorityCall()
{
var accountName = $("#accountName").val();
alert(accountName);
window.location="priorityCall.html?accountName="+accountName+"";
}
控制者
@RequestMapping(value="/priorityCall")
public ModelAndView priorityCall(Map<String, Object> model,@RequestParam ("accountName") String accName)
{
System.out.println("entry");
SampleBean template = new SampleBean ();
model.put("template ", template );
List<String> accountList = Service.getAccountList();
model.put("accountList", accountList);
model.put("accName", accName);
return new ModelAndView("analByPrior","","");
}
JSP:analByPrior
<form:form action="#" method="post" commandName="somedata"
id="taskDetails" enctype="multipart/form-data">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>Choose Account*</label>
<form:select path="accountName" class="form-control"
id="accountName" onchange="getAssignmentGroups()">
<form:option value="" label="--select--"></form:option>
<c:forEach items="${accountList}" var="accName">
<form:option value="${accName}" selected="true"> ${accName}</form:option>
</c:forEach>
</form:select>
</div>
</div>
</div>
</form:form>
更新在單擊“優先級按鈕”時,正在調用此控制器,而不是PriorityCall。。我不知道。
@RequestMapping("/priorityCallAnalysis")
public String someAction(@ModelAttribute("accountName") TicketInfo data, Map<String, Object> map,
HttpServletRequest request) {
TicketInfo somedata = new TicketInfo();
map.put("somedata",somedata);
System.out.println(somedata);
System.out.println("acc=" + request.getParameter("accountName"));
/* do some process and send back the data */
map.put("somedata", data);
map.put("accountName", request.getParameter("accountName"));
return "analysisByPriority";
}
首先,在.jsp文件中,您可以使用全局變量來存儲上下文路徑,並將此變量用作所有相對路徑中的前綴。
<script>var context = "${pageContext.request.contextPath}"</script>
現在,在您的js函數中,使用上下文路徑並調用控制器。
function getPriorityCall(){
var accountName = $("#accountName").val();
alert("contextPath: "+context); // will print your {appName}
window.location=context+"/priorityCall?accountName="+accountName;
}
因此,您的URI如下所示在您的請求調用中。
http://localhost:8080/{appName}/priorityCall?accountName={acountName}
PS:
${pageContext.request.contextPath}
好處是,如果以后更改appName,則無需在視圖中進行更改。 它將自動獲取最新的contextPath。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.