<form id="companyMore" action="CompanyDetail.action" name="form4" method="post" target="blank">
       <input type="hidden" name="id" id="pageId">
       </form>
这个id值是在JavaScript中赋值,并让该表单提交的,然后进入到action文件中,获取该id,然后struts的配置文件对应如下:
<action name="CompanyDetail" class="action.DetailAction" method="getDetail">
    <result name="success">/index.jsp</result>
    <result name="error">/index.jsp</result>
</action>
得到的结果页面url是:http://localhost:8080/Company/CompanyDetail.action
如何可以添加参数到这个页面呢?变成这样http://localhost:8080/Company/CompanyDetail.action?id=2
问题很简单,请告诉我:在jsp页面中如何改?action中如何改?struts.xml中如何修改?谢谢!Struts

解决方案 »

  1.   

    <form id="companyMore" action="CompanyDetail.action" name="form4" method="post" target="blank">改成get方式提交。你的参数就不会丢了。
      

  2.   

    用param<action name="getTemplate" class="tabAction" method="getTemplateByParas">
        <param name="objectId">${objectId}</param>
        <param name="param1">${param1}</param>
        <param name="items">${items}</param>
           
        <result name="success" type="chain">
            <param name="actionName">${actionName}</param>
            <param name="namespace">${namespace}</param>
        </result>
            
    </action> 
      

  3.   

     一般情况下,都是一个<form  action="tabAction?xx=${xx}" method="post">
    通过ssh框架的话,它自动把页面的所有属性封装到一个MAP集合里面去。要么就是实体的对象里面。直接可以再action 中得到页面的 属性!
      

  4.   


    document.getElementById("companyMore").action = "CompanyDetail.action?id=" + id ;
    js里input设置也是可以穿过去的! 不知道为何需要url后面加??
      

  5.   

    把ID放到共享对象中,在struts.xml中配置就OK了
      

  6.   

    不用struts,直接rederect到JSP页面不就ok了。
      

  7.   

    为了区分打开的页面,因为会搜索出N个结果,不可能每点一个结果,都只刷新那一个Action对应的结果页面吧。
      

  8.   


    document.getElementById("companyMore").action = "CompanyDetail.action?id=" + id ;这个也行的。