JSP页面没有调用具有正确参数的函数

时间:2014-10-30 16:23:37

标签: spring jsp

我正在开发一个具有JSP页面的Spring应用程序。在一个JSP页面中,我有3个动作。其中2个动作不需要任何参数,第三个动作有静态参数(/ note / list / 1234),1234是静态参数。

如果我调用这两个函数中的任何一个,第三个函数应该使用静态参数并执行。而不是它调用/ note / list / 0。我不知道为什么。我在下面发布JSP文件。请看看。

Note.JSP

<h1>
    Add notes
</h1>

<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/listing" ></c:url>
 <form:form action="${listNotes}" commandName="notices" method="post">
<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>
</form:form>

<c:url var="listAction" value="/note/list/2323" ></c:url>  // This method here calls /note/list/0
<form:form action="${listNotes}" commandName="notices" method="post">
    <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>
</form:form>
</body>
</html>

控制器:

@RequestMapping(value = "/note/list/{id}", method=RequestMethod.GET)
public String listNotes(@PathVariable int id,Model model) {
    System.out.println("Did we reach in noteslist");
    System.out.println("Section id is"+id);  // returns zero on first execution unless called manually with /note/list/{number}
    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";
}

即使我调用/ note / add,我还能用正确的URL即/ note / list / 1234调用它。你能帮忙的话,我会很高兴。谢谢。

0 个答案:

没有答案