3

次の形式の html タグがあります。

<input type="text" name="username" id="username" placeholder="Enter your username" required>

struts タグによってレンダリングされるように変換しようとしています (検証エラーが発生した場合、ページはユーザーが入力した値をリロードします)。

<s:textfield name="username" id="username" placeholder="Enter your username" required />

残念ながら、struts は次の例外をスローします。

org.apache.jasper.JasperException: /index.jsp(58,110) PWC6212: equal symbol expected
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:49)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:344)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:101)
    at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:220)
    at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:170)
    at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1394)
    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1636)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:152)
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:210)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:111)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:157)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:457)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:351)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:917)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)

Struts は「必須」に値がないことを好まないのではないかと推測しています。Struts タグを編集して、値なしで「必須」テキストを追加するにはどうすればよいですか? 「required="」などではなく、「required」の存在に依存する既存の JavaScript ライブラリがあります。

4

2 に答える 2

4

「必須」属性を完全に設定する必要があります。

<s:textfield ... required="required" />

これがJSP/XHTMLの仕組みです。

JS ライブラリが値の有無を気にするとは思えません。

于 2012-09-26T18:20:05.727 に答える