关注!对于第二个问题,你可以将所有的文本框都命名成一个名字,那么在actionForm中就可以用一个数组来取值了,至于怎么实现动态网页,嘿嘿,我也遇到了同样的问题,但是还没有解决掉

解决方案 »

  1.   

    1。可能你的路径不对所以不行。
    2。同意楼上。另外循环可以用<logic:iterate/>来作。
    3。只要一个struts-config.xml中定义如
     <action path="/A".... >
        <forward name="success" path="/xxx.do"/>
     </action>   
    那么调用A.do成功时,会调用xxx.do。
    4。Struts和其他形式的WebApplication应该可以进行互通,如同一个project中既用到了
    tiles框架,和struts框架,他们之间可以资源共享
    5。可以把action中的form ,cast成你要的ActionForm,或new一个这样的ActionForm,在这个form中调用你要的属性的set方法,那么传到jsp中,jsp中会显示你设的相应的值。
      

  2.   

    请问:
    问题1我试过很多不同的路径了,还是不行问题2能不能给出详细的例子问题5我new了一个新的ActionForm,并进行了适当的赋值,但是当转移到另一个JSP中并没有显示出我赋的值
      

  3.   

    问题2:
      例子可以上网找找,csdn上就有一些。
    问题5:
    你的那个jsp中的属性值要包含在form中,form的名字可以在struts-config中定义,也可以在jsp
    中定义,但是new的新的ActionForm的类型一定要和struts-config.xml中定义的匹配。
      

  4.   

    为什么非要用ActionForm呢?对于一个IT人来说,在软件开发的过程中遇到一些难点或不能解决的技术问题,很想找同行的人聊聊。平时,也想跟同行的人交流交流,但奈何现在QQ、MSN上的网友搜索功能不全面,提供的搜索项太少,导致搜索结果太多,往往很难找到一位与你兴趣相同、从事同领域的网友。51lookfor(我要找、网友搜索器)是针对QQ、MSN查找网友的不足而开发的。搞这个的起因是我想在QQ或MSN中搜索搞IT,而且是搞移动通讯方面的IT人聊天,但实在是很难找到。因此,自已就搞了一个,它能对网友提供的资料进行全文搜索,完全是为了方便网友,特别是像我们这些IT人,需要跟其他人交流的IT人。
    现在,只在IT界进行推广使用,欢迎各位使用,且留下你的个人资料,特别是你现在所从事的领域。
    请记得网址:http://www.51lookfor.com 。
    51lookfor是IT人交流的桥梁,你也来注册吧?
    应用举例,想找从事java的IT人,请搜索:it java或java。
      

  5.   

    问题1:
    我尝试了多种方法可是不行呀!?
    我用的方法是<html:link href><html:link>和javascript,主要是链接的路径。
    唯一链接成功的路径是Action.do但是他的转向是Action的input路径,没有进入Action中。
    问题5:
    做法和你描述的应当是一样的。首先建立一个FormBean,自动在struts-config中声明,同时在Jsp中的<html:form name="FormBean名字" type="FormBean的路径" action="">
    然后在form中的Field中这样写道<html:text property="password"/>当然property的名字是在FormBean中声明的变量。结果不行呀。
    但是我用一个formbean对应多个jsp就没有问题了。
    ps:我用的是JBuilder
      

  6.   

    如果你是新new的一个formbean(这是在form = null时才这样,一般都是cast成你要的ActionForm)那么你一定要request.setAttribute("xxxxx",formbean);
    "xxxxx"和你struts-config.xml中定义的一样。
      

  7.   

    第2个问题看看这个:
    http://expert.csdn.net/Expert/topic/2782/2782363.xml?temp=3.162783E-02
      

  8.   

    感谢sagittarius1979(射手爱狮子)!
    问题3、4、5已经解决
    问题4中在同一个project中的不同结构的webapplication可以进行资源的共享。主要还是问题1没有解决!在一个JSP中要实现转向多个Action怎么实现呢?另一个问题,如何将JSP表单中的属性绑定到FormBean中声明的变量?:如下面的代码,
    <html:form name="allForm" type="untitled1.AllForm" action="/test1Action">
    <html:text property="username"/>
    <html:submit>提交</html:submit>
    </html:form>
    当提交后可以在test1Action中得到username的值
    但是在这个JSP中却得不到allForm(FormBean)中的username的值
    如果JSP中的<html:text property="username"/>
    改写为<html:text name="allForm" property="username"/>
    就可以得到穿过来的值了。那么在JSP中将各种表单对象绑定到FormBean中不同的变量,应当怎样写呢?如果每一个表单对象都需要写出name="FormBean",会比较累。在开始的Form中声明怎么就不行呢?naomaomao(孬毛毛) 那个看不太懂呀!
      

  9.   

    我哪个跟(落叶无痕)说的一样,就是定义一个数组的属性在formbean中,jsp页面上的那些自动生成的表单元素,都用这一个名字,付值跟取值的时候就操作数组,那么数组里面各元素的值就是你表单上那些元素的值,顺序一样
      

  10.   

    <logic:iterate name="<%=Constants.FORUM_CLASS_LIST%>" id="classlist" type="com.beans.forumbeans.ForumClassBean" scope="request" >
    <%
    String orderValue = classlist.getForumClassNo();
    %>
    <html:text property="order" size="2" maxlength="2" value="<%=orderValue%>"/>
    </logic:iterate>
     naomaomao(孬毛毛) 能把你写的东西解释一下吗?谢谢!
      

  11.   

    循环体Constants.FORUM_CLASS_LIST
    是arrylist,里面存的是bean的数组,每次循环取出一个bean的对象,把这个对象里的属性值都拿出来做显示。<html:text property="order" size="2" maxlength="2" value="<%=orderValue%>"/>就是这个页面要动态显示的一个text元素,他的vlaue是从上面哪个循环体通过classlist.getForumClassNo();取出来的~~这样做你就会看到页面上有多个text元素,他们的名字都一样,但是value的值不同~~
      

  12.   

    “但是在这个JSP中却得不到allForm(FormBean)中的username的值”
    是指javascript中
    得不到 "document.allForm.username.value = ??"的值吗?
    应该不会吧。
      

  13.   

    哦,这几天挺糊涂的~~~回复又写错地方了~~不好意思~~:)刚才是谢: sagittarius1979(射手爱狮子) 回复我另外一篇文章的~~~~sorry~~~~~~~~~~
      

  14.   

    多谢两位的帮助!
    能否先帮我解决一下问题1呀?
    另有就是我在struts结构中的JSP页面输入中文,但是当我在debug的时候下面监视显示的却是乱码,但是在显示出来又回复成中文了,如何让整个过程都不是乱码呢?GBK和GB2312我都试过了。
      

  15.   

    关于第2个问题,是这个样子的:
    formbean中定义了:
    String[] Value;和起相关的get和set方法在jsp中,我想利用如下的结构,给value赋值和显示value的值:
    <html:logic >
      <html:text>
    </html:logic>
    naomaomao(孬毛毛) 你的程序是还在Action中做了操作吗?我觉得我的没有必要做任何操作,能够显示和赋值就可以了。
      

  16.   

    “<html:link href="/action">按钮</html:link>“刚才给你试了一下:
    <html:link href="./action.do">按钮</html:link> 可以成功。
    <html:link page="/action.do">按钮</html:link> 可以成功。
    关键还是连接路径的问题。
      

  17.   

    <html:link href="/action.do">这种形式确实可以实现转移
    但是转移到了action的input路径中的JSP页面,并没有进入accion中,进行操作。
    如果input中没有给出jsp的页面路径,服务器就会报错。
      

  18.   

    楼主你的<html:link href="./action.do">按钮</html:link> 
    中“按钮”是固定文字,还是<input type="button" name="按钮" value="xxx"> ?
      

  19.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>lc</shortname>
    <uri>http://jakarta.apache.org/struts/tags-lc-1.0.0</uri>
    <tag>
    <name>loop</name>
    <tagclass>untitled1.LoopTimeTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <attribute>
    <name>formbean</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
    </taglib>
    这是我写的一个非常简单的taglib,为什么一编译就报错呢?我是完全按照JBuilder中其它的tld写的!错误如下:
    "index4.jsp": org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/lc.tld: (line 1, col -1): 缺少文件根组件。
      

  20.   

    啊!大家先帮我解决一下 问题1 吧。我试了很多方法了。
    <html:link href="/action.do">按钮</html:link>
    但是转移到了action的input路径中的JSP页面,并没有进入accion中,进行操作。
    如果input中没有给出jsp的页面路径,服务器就会报错。
      

  21.   

    好的,问题1代码如下:
    <html:form action="/test1Action">
    <html:text name="allForm" property="username"/><br>
    <html:text name="allForm" property="password"/><br>
    <html:submit>开始</html:submit>
    <br>
    <html:link href="test2Action.do">test</html:link>
    </html:form>
    点击“开始”就转到了上面定义的test1Action,没有问题
    但是,点击“test”就无法转移到test2Action中,而是转移到test2Action中Input的jsp界面。
      

  22.   

    问题1我解决啦!把action的validate设置为false就可以了!关于前面提到的中文乱码问题也解决了。在formbean中set的时候总是将jsp中的中文存储为乱码,所以我加入了一个如下的函数:
    public String getStr(String str) {
        if (str != null)
        {
          try
          {
            String temp_p = str;
            byte[] temp_t = temp_p.getBytes("ISO8859-1");
            String temp = new String(temp_t);
            return temp;
          }
          catch (UnsupportedEncodingException e) {}
        }
        return null;
      }
    就可以了,当然还想请教为什么会出现乱码,和其它的解决方法!
    (ps:GBK和GB2312我都试了,解决不了)另一个问题:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>lc</shortname>
    <uri>http://jakarta.apache.org/struts/tags-lc-1.0.0</uri>
    <tag>
    <name>loop</name>
    <tagclass>untitled1.LoopTimeTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <attribute>
    <name>formbean</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
    </taglib>
    这是我写的一个非常简单的taglib,为什么一编译就报错呢?我是完全按照JBuilder中其它的tld写的!错误如下:
    "index4.jsp": org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/lc.tld: (line 1, col -1): 缺少文件根组件。
      

  23.   

    sagittarius1979(射手爱狮子)  好厉害呀
      

  24.   

    org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/lc.tld: (line 1, col -1)
    在解析xml时出错,看看你的tld中文件开始的地方(line 1, col -1)有没有非法的字符如
    全角的空格。
      

  25.   

    有需要Struts资料的请到网站 http://softtrade.vicp.net
      

  26.   

    我已经可以实现循环了!(自己写的taglib)结构如下<fb:loop formbean="<%=AllForm%>">循环体</fb:loop>
    formbean是一个固定ActionForm对象:AllForm.java
    循环次数是对象AllForm中的一个成员loop。但是,如果写成<fb:loop formbean="AllForm">
    则报错,因为JBuilder把AllForm当作了String型的数据,无法转换为AllForm型的实际上我想和JBuilder里面已有的标签一样,
    如:<html:text name="formbean" property="...">
    那么他就可以自动编译,得到相应的formbean,还可以自动转换类型。
    如果像我写的那样则还要在JSP中写出得到AllForm的语句:<jsp:useBean id="allForm" class="untitled1.AllForm" scope="request"/>
    如何实现像<html:text>的功能呢?我的想法是想实现一种循环,
    标签形式如下:
    <fb:loop formbean="ActionForm" property="ActionForm中的成员1">
    循环体:<html:text name="ActionForm" property="ActionForm中的成员1">
            <html:text name="ActionForm" property="ActionForm中的成员2">
    </fb:loop>
    其中“ActionForm中的成员1”和“ActionForm中的成员2”都是String的数组
    循环次数为“ActionForm中的成员1”的数组中元素的个数。
    同时在循环体中能够显示“ActionForm中的成员”。
    如何实现呢?
      

  27.   

    还有:
    在FormBean中定义String[] test
    在JSP中有循环体:<html:text name="FormBean" property="test">
    这样FormBean就可以自动给test进行赋值,赋值已经没有问题。但是
    如果显示的话就不行了,
    在JSP中有循环体:<html:text name="FormBean" property="test">
    要显示已经赋值的test,但是不能正常显示,显示结果为:[Ljava.lang.String;@18cb3a">
      

  28.   

    已经可以实现循环啦!
    形式如下:
    <fb:loop formname="" property="">
    循环体
    </fb:loop>
    在写formname和property时,不用表达式,传入的就是一个String型的东西
    然后利用RequestUtils.lookup(pageContext, formbean, property,null)
    得到property,当然返回的是Object形式。然后在强制类型转换一下。但是  2004-03-24 19:22:00  帖子中的问题还没有解决。