2014-11-03 79 views
0

我無法從JSP獲取值到我的Spring控制器,下面是我的代碼片段。無法從jsp獲取參數到彈簧控制器

<input type="hidden" id="categoryId" name="categoryId" value="<c:out value="${category.categoryId}"/>" /> 
<input type="hidden" id="sortBy" name="sortBy" value="<c:out value="${requestScope.sortBy}"/>" /> 
<input type="hidden" id="orderBy" name="orderBy" value="<c:out value="${requestScope.orderBy}"/>" /> 

在JSP

我已經定義的參數和我的控制器看起來像

@RequestMapping(value = "category/listCategory.htm") 
public ModelAndView getList(HttpServletRequest request) { 

    long longCurrentPage = CommonUtils.checkPaginationAttributes(request); 
    String orderBy = request.getParameter(const_OrderBy); 
    String sortBy = request.getParameter(const_SortBy);  
    List<Category> categoryList = categoryService.getCategoryList(longCurrentPage, orderBy, sortBy); 
    ... 
    ... 
    ... 
    request.setAttribute("currentPage", new Long(longCurrentPage)); 
     request.setAttribute(const_OrderBy, orderBy); 
     request.setAttribute(const_SortBy, sortBy); 
    ModelAndView modelandView = new ModelAndView("listCategory","categoryList",categoryList); 

從控制器到JSP值設定罰款,而從JSP得到相同的值越來越空的

我也試過

public ModelAndView getList(
     @RequestParam(value = "orderBy", required = false, defaultValue = "") String orderBy, 
     @RequestParam(value = "sortBy", required = false, defaultValue = "") String sortBy, 
     @RequestParam(value = "oortBy", required = false, defaultValue = "") String oortBy, 
     @RequestParam(value = "isPaginationClicked", required = false, defaultValue = "") String isPaginationClicked, 
     @RequestParam(value = "currentPage", required = false, defaultValue = "") String currentPage) 

不過我不是獲取值,

請幫助..在此先感謝...

+0

您需要發佈整個jsp頁面才能看到問題出在哪裏。這會產生很多問題,也許你沒有附上輸入框的表單標籤。 – Zemzela 2014-11-03 15:04:09

回答

0

您需要使用的,而不是HTML輸入標籤彈簧輸入標籤。

首先定義命名空間:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 

然後使用Spring輸入標籤:

<form:input type="hidden" id="categoryId" path="categoryId" value="<c:outvalue="${category.categoryId}"/>" /> 
0

首先,你可以使用彈簧片像<sf:input .../>來定義輸入字段 (<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>),幷包含所有JSP中您想要發佈服務器端的字段。這應該工作。

其次,在控制器,你可以defind像ListDTO一個對象,它包含從JSP頁面中的所有您發佈的字段並添加@ModelAttribute到方法的參數,如:

@RequestMapping(value = "category/listCategory.htm") 
public ModelAndView getList(HttpServletRequest request,@ModelAttribute ListDTO listDTO) { 

} 
0

謝謝,在我使用Spring form標籤和一個獨立的DTO對象從JSP傳輸數據後,它對我很有幫助,但我仍不明白爲什麼我無法訪問控制器中請求對象的輸入字段。無論如何,我的問題解決了,謝謝你們倆。