Passing parameters from jsp to Spring Controller method

I am working in a Spring MVC application that uses Hibernate.

On the JSP page, I have a function that lists the values ​​stored in the database (currently all values).

I wrote a method in which the list is limited only by the identifier passed in the JSP file. I received the HQL query correctly, so I know that it retrieves data based on identifier as a parameter.

Now I would like to use this method in the controller. To do this, I must pass the ID parameter to the list, so on the controller side, a function is called that will retrieve the list based on this identifier.

Unfortunately, I do not know how to pass parameters from a JSP file.

JSP file:

<c:url var="addAction" value="/note/add" ></c:url> <form:form action="${addAction}" commandName="notices"> <table> <c:if test="${!empty notices.notetext}"> <tr> <td> <form:label path="noticesid"> <spring:message text="noticesid"/> </form:label> </td> <td> <form:input path="noticesid" readonly="true" size="8" disabled="true" /> <form:hidden path="noticesid" /> </td> </tr> </c:if> <tr> <td> <form:label path="notetext"> <spring:message text="notetext"/> </form:label> </td> <td> <form:input path="notetext" /> </td> </tr> <tr> <td> <form:label path="notetag" > <spring:message text="notetag"/> </form:label> </td> <td> <form:input path="notetag"/> </td> </tr> <tr> <td> <form:label path="notecolor"> <spring:message text="notecolor"/> </form:label> </td> <td> <form:input path="notecolor" /> </td> </tr> <tr> <td> <form:label path="canvasid"> <spring:message text="canvasid"/> </form:label> </td> <td> <form:input path="canvasid" /> </td> </tr> <tr> <td> <form:label path="sectionid"> <spring:message text="sectionid"/> </form:label> </td> <td> <form:input path="sectionid" /> </td> </tr> <tr> <td> <form:label path="canvasnName"> <spring:message text="canvasnName"/> </form:label> </td> <td> <form:input path="canvasnName" /> </td> </tr> <tr> <td colspan="2"> <c:if test="${!empty notices.noticesid}"> <input type="submit" value="<spring:message text="Edit note"/>" /> </c:if> <c:if test="${empty notices.notetext}"> <input type="submit" value="<spring:message text="Add note"/>" /> </c:if> </td> </tr> </table> </form:form> <br> <h3>Notes List</h3> <c:url var="listAction" value="/note/list/2323" ></c:url> <c:if test="${!empty notices.noticesid}"> <table class="tg"> <tr> <th width="80">Notes ID</th> <th width="120">Notes text</th> <th width="120">Note Tag</th> <th width="120">Note color</th> <th width="120">Note section</th> <th width="120">Canvas id</th> <th width="120">Canvas name</th> <th width="120">Other id</th> <th width="60">Edit</th> <th width="60">Delete</th> </tr> <c:forEach items="${listNotes}" var="notices"> <tr> <td>${notices.noticesid}</td> <td>${notices.notetext}</td> <td>${notices.notetag}</td> <td>${notices.notecolor}</td> <td>${notices.sectionid}</td> <td>${notices.canvasid}</td> <td>${notices.canvasnName}</td> <td>${notices.personid}</td> <td><a href="<c:url value='/editnote/${notices.noticesid}' />" >Edit</a></td> <td><a href="<c:url value='/removenote/${notices.noticesid}' />" >Delete</a></td> </tr> </c:forEach> </table> </c:if> 

Controller file with a list:

 @RequestMapping(value = "/note/list/{id}", method=RequestMethod.GET) public String listNotes(@PathVariable int id,Model model) { Person person = personService.getCurrentlyAuthenticatedUser(); this.setSectionid(id); model.addAttribute("person", new Person()); model.addAttribute("listPersons", this.personService.listPersons()); model.addAttribute("listNotes",this.notesService.listNotesBySectionId(id,person)); return "note"; } @RequestMapping(value= "/note/add") public String addNote(@ModelAttribute("notices") Notes p,Model model) { Person person = personService.getCurrentlyAuthenticatedUser(); model.addAttribute("listNotes",this.notesService.listNotes()); int id = getSectionid(); System.out.println("Section id is"+id); model.addAttribute("listNotes",this.notesService.listNotesBySectionId(id,person)); this.notesService.addNote(p, person); return "note"; } 

I tried looking at the net, but I don’t know what it is called, what I’m looking for, therefore, with difficulty. Any help would be good. Thanks.

+7
spring spring-mvc jsp
source share
2 answers

Your controller method should look like this:

 @RequestMapping(value = " /<your mapping>/{id}", method=RequestMethod.GET) public String listNotes(@PathVariable("id")int id,Model model) { Person person = personService.getCurrentlyAuthenticatedUser(); int id = 2323; // Currently passing static values for testing model.addAttribute("person", new Person()); model.addAttribute("listPersons", this.personService.listPersons()); model.addAttribute("listNotes",this.notesService.listNotesBySectionId(id,person)); return "note"; } 

Use id in your code, call the controller method from your JSP as follows:

 /{your mapping}/{your id} 

UPDATE:

Change jsp code to:

 <c:forEach items="${listNotes}" var="notices" varStatus="status"> <tr> <td>${notices.noticesid}</td> <td>${notices.notetext}</td> <td>${notices.notetag}</td> <td>${notices.notecolor}</td> <td>${notices.sectionid}</td> <td>${notices.canvasid}</td> <td>${notices.canvasnName}</td> <td>${notices.personid}</td> <td><a href="<c:url value='/editnote/${listNotes[status.index].noticesid}' />" >Edit</a></td> <td><a href="<c:url value='/removenote/${listNotes[status.index].noticesid}' />" >Delete</a></td> </tr> </c:forEach> 
+5
source share

Use @RequestParam to pass the parameter to the controller handler method. In jsp, your form should have an input field with name = "id" as follows:

 <input type="text" name="id" /> <input type="submit" /> 

Then in your controller, your handler method should look like this:

 @RequestMapping("listNotes") public String listNotes(@RequestParam("id") int id) { Person person = personService.getCurrentlyAuthenticatedUser(); model.addAttribute("person", new Person()); model.addAttribute("listPersons", this.personService.listPersons()); model.addAttribute("listNotes", this.notesService.listNotesBySectionId(id, person)); return "note"; } 

Also see these answers and the tutorial:

+7
source share

All Articles