2013-01-08 39 views
1

我有這樣的代碼。將post變量傳遞給另一個方法

@RequestMapping(值= 「/人」,方法= RequestMethod.POST) 公共字符串@ResponseBody ADDUSER(@RequestParam字符串名稱){

returnText=name; 
//List<Person> personList = personService.getAllzonedetails(returnText); 
System.out.println(returnText); 
//model.addAttribute("personsajax", personList); 
return **returnText**; 

}

@RequestMapping(value = "/persons", method = RequestMethod.GET) 
public String getPersons(Model model) { 

    newvariable = returnText; 
    System.out.println(newvariable); 
logger.debug("Received request to show all persons"); 
// Retrieve all persons by delegating the call to PersonService 
List<Person> persons = personService.getAll(); 
List<Person> persons1 = personService.getAllzonedetails(newvariable); 
    // Attach persons to the Model 
model.addAttribute("persons", persons); 
model.addAttribute("personsajax", persons1); 
// This will resolve to /WEB-INF/jsp/personspage.jsp 
return "personspage"; 
} 

我想在System.out.println(newvariable)中獲取returnText後的值;在get方法中傳遞jsp頁面。

任何其他方式來傳遞jsp中的post值。

謝謝...

回答

0

我認爲你正在試圖做的是,當用戶在POST方法添加,那麼你想重定向到GET方法和人員列表頁面上要顯示新添加的用戶名。

你在這裏嘗試過的是不正確的。首先,您需要從POST方法更改@ResponseBody註釋,並簡單地從該函數返回「redirect:/ persons」字符串。這將重定向到您的GET方法。現在要在GET方法中使用新添加的用戶名,您需要使用RedirectAttributes將名稱返回給GET方法。

爲了在您的post方法簽名中添加一個參數RedirectAttributes redirectAttributes。然後在你的return語句之前插入下面的行。

redirectAttributes.addFlashAttribute("newUserName", returnText); 

然後,您可以使用EL ${newUserName}訪問JSP中的值。

我希望這會幫助你。