如何从网址中删除多余的表单操作标记?

时间:2014-10-05 11:11:01

标签: java html spring spring-mvc tiles2

以下是我的header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

 <head>
 <script src="http://code.jquery.com/jquery.min.js"></script>
     <style>
        #mycontainer, h1, h3 {
            text-align:center;
        }
        form {
            display:inline-block;
        }       
    </style>
 </head>

<div id="mycontainer">  
    <form method="get" action="search/s" id="number">
        <div style="text-align: center;">
            <input  type="text" id="regNo" name="regNo" size="30" maxLength="50" placeholder="Enter Register Number"> OR       
        </div>      
    </form>           

    <form method="get" action="search/l" id="name">                      
        <input  type="text" id="studentName" name="studentName" size="30" maxLength="50" placeholder="Enter Student Name"></input>          
    </form>                             
</div>             

<div style="text-align: center;">
    <input id="inputFields" type="button" value="Search" />
</div>

<script>
    $(document).ready(function(){
        $('#inputFields').click(function(event){
            if (document.getElementById('regNo').value !=""){
                $("#number").submit();

            }else if(document.getElementById('studentName').value !=""){
                $("#name").submit();
            }
        });
    });    
</script>

所以我通过localhost转到主页:8080 / ProjectCtxt / mvc / template

之后我在数字文本字段中输入一些值并按Enter键,然后网址变为localhost:8080 / ProjectCtxt / mvc / search / s?regNo = 123。现在,如果我再次输入另一个寄存器编号,则网址变为

本地主机:8080 / ProjectCtxt / MVC /搜索/秒/搜索/ s的REGNO = 124

添加了额外的搜索。 我正在使用Apache瓷砖。

  &#34; - // Apache Software Foundation // DTD Tiles Configuration 2.1 // EN&#34;
     &#34; HTTP://tiles.apache.org/dtds/tiles-config_2_1.dtd"&GT;

<tiles-definitions>
    <definition name="template" template="/WEB-INF/jsp/template.jsp">
        <put-attribute name="title" value=""/>
        <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="title" value="" />  
        <put-attribute name="body" value="/WEB-INF/jsp/ads.jsp" />  
    </definition>

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

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

    <!-- <definition name="bottom" extends="new.template">
        <put-attribute name="bottom" value="/mvc/jsp/ads.jsp" />
        <put-attribute name="bottom" value="/WEB-INF/jsp/ads.jsp" />
    </definition> -->

</tiles-definitions>

我的控制器会在每次成功搜索后返回numberResult。

1 个答案:

答案 0 :(得分:1)

使用<form method="POST" action="search/s" id="number">代替
  <form method="get" action="search/s" id="number">
GET合并网址中的字段。但POST发送请求正文中的字段。并相应地修改您的控制器, @RequestMapping(value="/new", method = RequestMethod.POST)有关详细信息,请查看http://www.w3schools.com/tags/ref_httpmethods.asp