如何在Apache tile中使用jsp时将值从jsp传递给控制器​​并返回到jsp?

时间:2014-10-18 23:51:14

标签: spring jsp spring-mvc java-ee jstl

我为Spring网站项目配置了磁贴。

tiles.xml如下所示

<tiles-definitions>
    <definition name="template" template="/WEB-INF/jsp/template.jsp">

        <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
        <put-attribute name="body" value="/WEB-INF/jsp/ads.jsp  "/>
        <put-attribute name="center" value="/WEB-INF/jsp/ads.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" /> 
    </definition>

    <definition name="header" extends="template">

        <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
        <put-attribute name="body" value="/WEB-INF/jsp/ads.jsp" />  
    </definition>

    <definition name="numberResult" extends="template">

        <put-attribute name="body" value="/WEB-INF/jsp/numberResult.jsp" />  
    </definition>

    <definition name="nameResult" extends="template">

        <put-attribute name="body" value="/WEB-INF/jsp/nameResult.jsp" />  
    </definition>

</tiles-definitions>

现在我的问题是我在header.jsp中有一个名为studentName的输入字段。

让我们说用户输入&#34; abcd&#34;在那个输入字段中。我将它传递给控制器​​,然后返回到nameResult.jsp(现在该页面也将header.jsp作为tile的一部分)。

我想解决以下两个问题。

1)我想保留&#34; abcd&#34;当我从控制器返回时,在header.jsp的输入字段中,并在输入字段中将其显示给用户。

2)我还想使用nameResult.jsp中的值&#34; abcd&#34;(在header.jsp中)来获取AJAX请求。

header.jsp代码

<div id="mycontainer">  
    <form method="get" action="number" id="number">
    <!--    <div id="regNoErrorMsgNumber">Only numbers are allowed</div> -->
            <div style="text-align: center;" >
                    <!-- //TODO: Only number, no spaces, no special symbol and 12 digit check-->                

                             <input  width="20" type="text" data-validation="numbers" id="regNo" name="regNo" size="30" maxLength="50" placeholder="Enter Register Number"> <b>OR</b>       

            </div>

    </form>           

    <form method="post" action="name" id="name">                 
                <input  type="text" id="studentName" name="studentName" size="30" maxLength="50" placeholder="Enter Student Name"></input>      
            <c:set var="salary" scope="session" value="${2000*2}"/>
    </form>                             
</div>   

1 个答案:

答案 0 :(得分:1)

我假设您已经拥有一个返回类型为 ModelAndView 的控制器方法。您需要做的就是使用ModelAndView的 addObject(parameterName,parameterValue); 方法,您应该能够在JSP上获取值,而且您将成为能够使用该值来制作您的AJAX请求