2013-07-11 55 views
0

我對JSP表單有麻煩,無法使其工作。你能解釋我爲什麼這個 工作:提交jsp表單的問題

<%@ page session="false"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ page isELIgnored="false"%> 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<form:form modelAttribute="categoriesItem" method="post" 
     action="facebook/categorize"> 
     <fieldset> 
      <form:select path="categories['${liste}']"> 
       <option value="None" selected>None</option> 
       <option value="Family">Family</option> 
       <option value="Professionnal">Professionnal</option> 
       <option value="Friend">Friend</option> 
      </form:select> 
      <input type="submit" /> 
     </fieldset> 
    </form:form> 

,這不?

<%@ page session="false"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ page isELIgnored="false"%> 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<form:form modelAttribute="categoriesItem" method="post" 
    action="<c:url value="/facebook/categorize" />"> 
    <fieldset> 
     <form:select path="categories['${liste}']"> 
      <option value="None" selected>None</option> 
      <option value="Family">Family</option> 
      <option value="Professionnal">Professionnal</option> 
      <option value="Friend">Friend</option> 
     </form:select> 
     <input type="submit" /> 
    </fieldset> 
</form:form> 

正如你看到的,唯一的區別是在action標籤,然而,它不工作,我得到這個錯誤:

org.apache.jasper.JasperException: /WEB-INF/views/prehandleFacebook.jsp (line: 30, column: 24) Tag &lt;form:form non terminé 
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) 
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443) 
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:133) 
    org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:992) 
    org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1274) 
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452) 
    org.apache.jasper.compiler.Parser.parse(Parser.java:138) 
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242) 
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) 
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
    org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) 
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 

莫非是兩個EL語言之間的不兼容性?

+0

哪條線是30號線? –

+0

'」> – fxm

+0

我假定這個jsp被包含在另一箇中。你能展示一些嗎? –

回答

0

action="facebook/categorize"> 

告訴瀏覽器相對化facebook/categorize到您當前所在的URL。如果您在www.myapp.com/myapp/facebook上,當您提交時,瀏覽器會將請求發佈到www.myapp.com/myapp/facebook/facebook/categorize(我認爲這是錯誤的)。請注意,如果您的路徑是/facebook/categorize(在開始時額外的/),則將附加到主機,而不是上下文。

action="<c:url value="/facebook/categorize" />"> 

被渲染爲一個完整路徑(相對於您的上下文根)。如果您的主機+上下文是myapp.com/myapp,那麼它將呈現爲myapp.com/myapp/facebook/categorize

0

嘗試改變第二個(我想你不能包括<c:out...><form:form...>)。
在這種情況下,您將使用絕對路徑。

<c:url var="myurl" value="/facebook/categorize" /> 
<form:form modelAttribute="categoriesItem" method="post" 
    action="${myurl}"> 
+0

這就是我現在所做的。我的問題是:是否有這種不兼容的原因? – fxm