文件“/ Struts的标签”没有在Struts中发现1.3

问题描述:

我在jsp中写了一个条件if else标签logic:iterate里面如下: -文件“/ Struts的标签”没有在Struts中发现1.3

<s:if test="%{#status=='Scheduling'}"> 
<td><input type="button" name="Save" enabled="enabled" value="View Log" class="Button" onclick="javascript:update('<bean:write name="test" property="listName" />','<bean:write name="test" property="testType" />',<bean:write name="test" property="status" />,this.value)"></td> 
</s:if> 

<s:elseif test="%{#status=='Running'}"> 
<td><input type="button" name="Save" enabled="enabled" value="View Log" class="Button" onclick="javascript:update('<bean:write name="test" property="listName" />','<bean:write name="test" property="testType" />',<bean:write name="test" property="status" />,this.value)"></td>     
</s:elseif> 

<s:else> 
<td><input type="button" name="Save" disabled="disabled" value="View Log" class="Button" onclick="javascript:update('<bean:write name="test" property="listName" />','<bean:write name="test" property="testType" />',<bean:write name="test" property="status" />,this.value)"></td>     
</s:else> 

我定义在JSP文件的开头<%@taglib prefix="s" uri="/struts-tags" %>如图所示如下: -

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 
<%@taglib prefix="s" uri="/struts-tags" %> 

当我打开jsp文件时我收到以下错误。你能帮我解决这个问题吗?

org.apache.jasper.JasperException: File "/struts-tags" not found 
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51) 
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) 
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116) 
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160) 
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:429) 
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492) 
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1439) 
    org.apache.jasper.compiler.Parser.parse(Parser.java:137) 
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255) 
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:332) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:312) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:299) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069) 
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455) 
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

在您的部署描述符中,也就是web.xml中,您应该具有类似以下声明的内容。 (记得在你的taglib位置有tld文件)

<jsp-config> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> 
     <taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location> 
    </taglib> 
    </jsp-config> 
+0

它已经宣布,但即时得到相同的问题 – 2011-06-26 13:48:49

你在将Struts 1.3标签和Struts 2标签混合在一起。为了使您的taglib声明<%@ taglib prefix="s" uri="/struts-tags" %>能够编译,您必须在您的WEB-INF\lib文件夹中包含struts2-core-2.1.6.jar(撰写本文时为最新的jar),在struts2-core-2.1.6.jar \ META-INF \ Struts的tags.tld)。

记住,Struts 2的是 从未在Struts 1向后兼容,因为它是一个全新的体系结构的Apache迈出了新的方向的Struts 1

我建议使用,而不是使用Struts 2标签库的定义JSTL

熊Struts 1.3在JSTL中运行良好。

+0

即时通讯使用struts 1.3只,我不想使用struts 2,你能建议在这种情况下的JSTL的代码。 – 2011-06-26 13:48:28

+0

@ user756993,你可以使用''标签或''(''&'')标签来为你的条件标签流。 – 2011-06-30 05:35:32