2016-03-09 79 views
0

我一直在寻找可能帮助我解决这个问题而没有成功的东西。我需要的只是通过按下一个Button元素来调用Spring Controller,并从它传递一个RequestParam(在这个特定情况下为“statusId”)。有没有办法做到这一点,而不使用JavaScript?从Button传递参数到Java spring MVC控制器

我的下一个HTML:

   <div class="tablero col-lg-4 col-md-4 col-sm-6"> 
       <div class="inner-content"> 
        <div class="rate"> 
         <div class="number"> 
          <span>${package}</span> 
          <span class="text">REFERRALS</span> 
         </div> 
        </div> 
        <div class="description"> 
         <h3> 
         <i class="fa fa-shopping-bag"></i> 
         PACKAGE 
        </h3> 
         <label>Paquete</label> 
         <button class="btn-primary" onclick="location.href='listReferred.htm' id="package">GO TO LIST</button><!--The parameter should be send from this button--> 
        </div> 
       </div> 
      </div> 

和Spring MVC控制器:

@SuppressWarnings("unchecked") 
@RequestMapping(value="/listReferred", method=RequestMethod.GET) 
public String getListReferredPage(@RequestParam int statusId, Model model) { 

    RestTemplate restTemplate = new RestTemplate(); 
    String url = URL_REFERREDTYPE_JSON+statusId; 
    List<SearchProspectTO> searchProspectToList = restTemplate.getForObject(url, List.class, statusId); 
    model.addAttribute("searchProspectToList", searchProspectToList); 

    return "portalInternoReferidos"; 
} 

回答

0

环绕至少按钮元素与形式,像这样:

<form action="listReferred" method="get"> 
    <button... 
</form> 

为按钮添加名称和值属性:

<button name="yourButton" value="[provide status id here]">GO TO LIST</button> 

改变@RequestParam int statusId@RequestParam(value="yourButton") int statusId

这将工作,除了旧的IE浏览器 - 我认为低于版本10。这些版本将返回“转到列表”而不是值。

作为解决方法,您可以使用隐藏输入,该隐藏输入也必须放置在表单部分中。

+0

正如你所建议的,我确实用表单标签包围了按钮,并添加了一个隐藏的输入(我将它作为RequestParam发送给控制器)​​。它工作正常。 – fabiang81

相关问题