我不想用struts框架,但是希望能在项目中使用struts的几个标签. 
但是好像bean标签可以使用,而logic和html两个标签都提示出错.logic标签的错误信息是: 
Error in using tag library uri='/WEB-INF/tags/struts-logic.tld' prefix='logic': The Tag class 'org.apache.struts.taglib.logic.RedirectTag' has no setter method corresponding to TLD declared attribute 'action', (JSP 1.1 spec, 5.4.1) html标签的错误信息是:
The Tag class 'org.apache.struts.taglib.html.CheckboxTag' has no setter method corresponding to TLD declared attribute 'errorKey', (JSP 1.1 spec, 5.4.1)看别人都说可以用,为什么会发生这种错误?难道跟版本有关系?
请指教.

解决方案 »

  1.   

    是可以用的。请看你的错误信息,是提示没有找到tld相应的java类。
    我现在做的项目就用struts标签,但没有用struts。
    解决的方法是你把struts的包--最好不要导入MyEclipse(如果你用这个IDE的话)自带的包--导入到你的项目中就可以了。
    如果没有就请到http://struts.apache.org/download.cgi#struts139下载相应版本的Library。
      

  2.   

    当然别忘了在web.xml文件中配置那些你需要用到的tld文件
      

  3.   

    该导入的包和tld文件都已经导入了,web.xml里面也都配置好了,报的错不是找不到类
    郁闷试验中
      

  4.   


    上面说的是:
    标签库 uri='/WEB-INF/tags/struts-logic.tld' prefix='logic' 使用错误: 标签实现类 org.apache.struts.taglib.logic.RedirectTag 没有 setter 方法对应 TLD 声明的 action 属性。
    标签实现类 org.apache.struts.taglib.html.CheckboxTag 没有 setter 方法对应 TLD 声明的 errorKey 属性。
      

  5.   

    不好意思。我太马虎了。
    那很可能是版本的问题。
    你确保你所用的struts标签及struts的包是同一版本。
      

  6.   

    发现问题:同样的工程放在tomcat下就没有问题,打开含有这些标签的jsp的时候,控制台有这样的初始化消息:
    2008-9-8 13:33:27 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
    2008-9-8 13:33:27 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config='org.apache.struts.taglib.logic.LocalStrings', returnNull=true但是放在weblogic下就没有初始化消息,而是发生错误.请各位帮忙分析一下.谢谢.
      

  7.   

    应该不是struts包和标签版本的问题,因为在tomcat下运行OK.我用的是weblogic8.2, tomcat5.5.
    期待高手.
      

  8.   

    请看weblogic下的报错:<2008-9-8 下午01时47分19秒 CST> <Error> <HTTP> <BEA-101020> <[ServletContext(id=23818829,name=Test,context-path=/Test)] Servlet failed with Exception
    weblogic.servlet.jsp.JspException: (line 2): Error in using tag library uri='/WEB-INF/tags/struts-logic.tld' prefix='logic': The Tag class 'org.apache.struts.taglib.logic.RedirectTag' has no setter method corresponding to TLD declared attribute 'action', (JSP 1.1 spec, 5.4.1)
    at weblogic.servlet.jsp.StandardTagLib.tld_jspException(StandardTagLib.java:1243)
    at weblogic.servlet.jsp.StandardTagLib.parseTagDD(StandardTagLib.java:1371)
    at weblogic.servlet.jsp.StandardTagLib.parseDD(StandardTagLib.java:1269)
    at weblogic.servlet.jsp.StandardTagLib.<init>(StandardTagLib.java:292)
    at weblogic.servlet.jsp.TagLibHelper.loadTagLib(TagLibHelper.java:314)
    at weblogic.servlet.jsp.JspLexer.loadTagLib(JspLexer.java:145)
    at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE_BODY(JspLexer.java:5067)
    at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE(JspLexer.java:4905)
    at weblogic.servlet.jsp.JspLexer.mDIRECTIVE(JspLexer.java:4751)
    at weblogic.servlet.jsp.JspLexer.mSTANDARD_THING(JspLexer.java:2161)
    at weblogic.servlet.jsp.JspLexer.mTOKEN(JspLexer.java:1947)
    at weblogic.servlet.jsp.JspLexer.nextToken(JspLexer.java:1820)
    at weblogic.servlet.jsp.JspLexer.parse(JspLexer.java:963)
    at weblogic.servlet.jsp.JspParser.doit(JspParser.java:106)
    at weblogic.servlet.jsp.JspParser.parse(JspParser.java:234)
    at weblogic.servlet.jsp.Jsp2Java.outputs(Jsp2Java.java:125)
    at weblogic.utils.compiler.CodeGenerator.generate(CodeGenerator.java:258)
    at weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:396)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:246)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:196)
    at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:598)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:406)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:526)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

      

  9.   

    我试过了啊
    单独用logic是可以的啊
      

  10.   

    单独用 <logic:present /> 等这些逻辑标签没问题,但是使用 <logic:redirect href="/page.jsp" /> 重定向标签不行,哪怕不用 forward 等属性也不行,可以用 JSTL 中的 <c:redirect url="/page.jsp" /> 替代。另外 <html:checkbox property="id" /> 等标签也不能脱离开 Struts 环境单独使用。
      

  11.   


    weblogic8.2 + struts1.2 
    你试过可以?
    我写个最简单的jsp只含有<logic  >标签都报错.
      

  12.   


    你试过weblogic8.2 + struts1.2 +jdk1.4 可以用?
    我的jsp里面根本没有用到logic:redirect 和html:checkbox,
    只有一个简单的<logic:present name="a">qqq</logic:present>,这样都不行,还是报那个错.
      

  13.   

    (JSP 1.1 spec, 5.4.1) 
    你用的什么版本的 tomcat,怎么会是 JSP 1.1啊?
      

  14.   


    我的测试环境:JDK1.6.0u6 + Tomcat6.0.18 + Struts1.3.8,实际测试我上面提到的标签可以,<logic:present /> 更可以,你遇到的问题应该是 TLD 版本和实现类版本不一致。
      

  15.   


    我是weblogic8.2 + jdk1.4
    用tomcat5.5是可以的,用weblogic8.2的时候报这个错.
      

  16.   

    struts包和tld肯定是一个版本,难道weblogic8.2不支持struts1.2??
      

  17.   

    我前一个项目用的也只是STRUTS标记,刚开始也是一直报错,原因是有个包和STRUTS包不兼容,好象是commons里面的一个,后来删除了就可以了,你一个个移掉看下.