如果你要使用form,肯定要定义propl,名字必须一样,超级连接的参数可以传递到form。

解决方案 »

  1.   

    1.超连接的参数是能传递到showpictureForm.
    当你点击这个链接的时候,Struts会实例化"/showpicture"所对应的ActionForm(showpictureForm),并把请求中的参数名和showpictureForm属性名相同的参数值setter到showpictureForm中...
    2.showpicture.do 可以不定义prop1,pst,名字可以不一样...
    在showpicture.do可以这样接收这两个请求参数...
    String a1 = ((ShowpictureForm)form).getprop1();
    String a2= ((ShowpictureForm)form).pst();
    如果showpictureForm没有pst属性的话,可以这样:String a= request.getParameter("pst");
      

  2.   

    可以用javascript作为辅助.设置几个hidden.
    function doSubmit() {
      document.prop1.value = "棉花";
      ....
      document.showpictureForm.submit();
    }
    <html:link page="javascript:doSubmit()";  .... </html:link>
    <html:hidden property="prop1"/>当然你的jsp必须有form对应.这种方法的
    优点:
        可以把一些参数隐藏起来,不暴露给客户端.
    缺点:
        jsp中有时会包含业务逻辑,不符合MVC思想.
      

  3.   

    你的From的写法应该和sagittarius1979(花开花落 流水无声) 的Jsp端配合使用。
    如果你要
    <html:link page="/showpicture.do?prop1=棉花&amp;pst=1992">
    1992年棉花产量分布图
    </html:link>
    这样写的话,你form中就可以不写
     public void setprop1(String prop1)
      {
        this.prop1=prop1;
      }
      public String getprop1(){
        return prop1;
      }
    了。
    在Action端直接取数据就可以了。
    request.getParamter("prop1");
    request.getParamter("pst");
    这和Struts无关。