繁体   English   中英

Struts2标签给出了碧玉异常

[英]Struts2 tag giving jasper exception

下面是jsp代码

<ul class="nav pull-right">
          <s:if test="%{curUser != null}">
              <li class="dropdown">
                <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">%{curUser.userName}<b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <s:if test="%{curUser.admin eq true}">
                    <li><a href="/admin" title="Admin Section"><i class="icon-certificate"></i> Admin</a></li>
                  </s:if>
                  <li><a href="/user/%{curUser.userName}" title="%{curUser.userName}'s Profile"><i class="icon-user"></i> Profile</a></li>
                  <li><a href="/user/profile.html?action=edit"><i class="icon-cog"></i> Edit Profile</a></li>
                  <li><a href="/login.html?action=logout"><i class="icon-off"></i> Sign out</a></li>
                </ul>
              </li>
            </s:if>
            <s:else>
              <li><a href="/login">Login</a></li>
              <li class="divider-vertical"></li>
              <li><a href="/signup">Sign Up</a></li>
            </s:else>
        </ul>

我收到此错误。 需要帮助。

org.apache.jasper.JasperException: An exception occurred processing JSP page /decorators/base.jsp at line 45

42:               </a></li>
43:             </ul>
44:             <ul class="nav pull-right">
45:               <s:if test="%{curUser != null}">
46:                   <li class="dropdown">
47:                     <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">%{curUser.userName}<b class="caret"></b></a>
48:                     <ul class="dropdown-menu">

这是我的web.xml配置-我猜问题是在Sitemesh中使用Struts标签。

   <filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter>
    <filter-name>LoginCheckFilter</filter-name>
    <filter-class>com.tutorial.filter.LoginCheckFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>LoginCheckFilter</filter-name>
    <url-pattern>/admin</url-pattern>
    <url-pattern>/admin/*</url-pattern>
  </filter-mapping>

  <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
      <param-name>logLevel</param-name>
      <param-value>WARN</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
      <param-name>actionPackages</param-name>
      <param-value>com.tutorial.action</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

  <listener>
    <listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>
  </listener>

对我来说,情况也是一样,碰触我也收到另一个错误。 发生的事情是在运行时替换了struts标记,因此html处理器无法对其进行编译。 解决方案是在web.xml中,struts过滤器映射必须比sitemesh过滤器映射更高。

在本主题中,我的回答是相同的:在装饰器sitemesh上未替换s:url

看一下您是否熟悉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM