大家好,我在struts2中使用sitemesh,在母版页中我想使用<page:applyDecorator page="cruduser.action" name="panel"/>标签加入另外的一个母版页。但是提示“cruduser.action did not create a valid page to decorate”。代码如下:
<body>
  <div>母版页的标题</div>
  <page:applyDecorator page="cruduser.action" name="panel"></page:applyDecorator>
   <table>
        <tr>
           <td><decorator:title/></td>
        </tr>
      <tr>
         
         <td><decorator:body/></td>
      </tr>
   </table>
   <div>母版页的footer</div>
  </body>望求教

解决方案 »

  1.   

    报的错意思是cruduser.action找不到资源。page属性应该用绝对路径(以/打头),并保证资源存在。
      

  2.   

    找到错误了,应该改为全名:<page:applyDecorator page="http://localhost:8080/sshexample/cruduser.action" name="panel"></page:applyDecorator>可以正确显示cruduser.action所对应的cruduser.jsp的内容,但又出现中文乱码问题。单独访问http://localhost:8080/sshexample/cruduser.action可以正确显示中文。望高手解答
      

  3.   

    中文问题解决了,现在的问题是使用了上述语句后,访问速度特别的慢,一个页面要20多秒中才能打开,郁闷中......。如果我换成别的jsp页面,速度变得很快,如:<page:applyDecorator page="http://localhost:8080/myjsp.jsp" name="panel"></page:applyDecorator>
      

  4.   

    可以查一下cruduser.action生成的结果页面(或片段)是否是XML平衡的(即起标尾标配)。
    另,sitemesh的毛病就是性能问题。Tiles就好一些。
      

  5.   

    兄弟,回答的有点晚..我也遇到了跟你差不多的问题,不过不确定是不是完全一样,可以这么解决:
    <page:applyDecorator name="common">
        <s:action name="naviBar" namespace="/" executeResult="true" />
    </page:applyDecorator>