还需要从下拉列表中选中一个项目之后能返回不同的值进行页面的刷新

解决方案 »

  1.   

    你说的是级联菜单吧!
    用ajax 调用 action 然后就返回数据就可以了
    <SCRIPT type="text/javascript">
            function Change_Select(url)
            {
                rurl=url;                if(window.XMLHttpRequest)
                    {
                        req=new XMLHttpRequest();
                    }else if(window.ActiveXObject)
                    {
                        req=new ActiveXObject("Microsoft.XMLHTTP");
                    }             
                    if(req)
                    {
                        req.open("GET",rurl,true);
                        req.onreadystatechange=callback;
                        req.send(null); 
                    }
            }
            function callback()
            {
                if(req.readyState == 4)
                {
                    if(req.status == 200)
                    {
                        parseMessage();
                    }else{
                        alert("Not able to retrieve description :  "+req.statusText);
                    }
                }
            } 
            function parseMessage()
            {
                var xmlDoc=req.responseXML;
                var root=xmlDoc.documentElement;
                var select_root=document.getElementById("B");//要刷新的 select
                while(root.hasChildNodes())
        {
    var child=root.firstChild;
    var option=new Option(child.getAttribute("value"),child.getAttribute("id"));
    root.removeChild(child);
                    try{
                        select_root.add(option);
                    }catch(e){
                    }
        }   
            } 
    </SCRIPT>
    <html:select property="A" onchange="Change_Select('/Change.do?id='this.id)" >
    <html:option value="1">1</html:option>  
    <html:option value="2">2</html:option>  
    <html:option value="3">3</html:option>  
    </html:select> 
    <html:select property="B"  ></html:select>
    ------------------------------------------
    Change.java
    -----------------------------------------
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;public class Change extends Action {
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest req,
    HttpServletResponse res
    ){
    String id=req.getParameter("id");
    res.setHeader("Cache-Control", "no-store");
    res.setDateHeader("Expires", 0);
    res.setContentType("text/xml; charset=UTF-8");
    try
    {
    org.w3c.dom.Document document=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
    org.w3c.dom.Element root=document.createElement("root"); org.w3c.dom.Element child1=document.createElement("child1");
    org.w3c.dom.Element child2=document.createElement("child2");
    org.w3c.dom.Element child3=document.createElement("child3");]
    if("1".equals(id)){
    child1.setAttribute("id","1");
    child1.setAttribute("value","苹果");
    child2.setAttribute("id","2");
    child2.setAttribute("value","桔子");
    child3.setAttribute("id","3");
    child3.setAttribute("value","香蕉");
    }else{
    child1.setAttribute("id","1");
    child1.setAttribute("value","大米");
    child2.setAttribute("id","2");
    child2.setAttribute("value","白面");
    child3.setAttribute("id","3");
    child3.setAttribute("value","玉米");
    }
    root.appendChild(child1);
    root.appendChild(child2);
    root.appendChild(child3);

    document.appendChild(root);
    javax.xml.transform.dom.DOMSource doms=new javax.xml.transform.dom.DOMSource(document);
    javax.xml.transform.stream.StreamResult sr=new javax.xml.transform.stream.StreamResult(res.getOutputStream());
    javax.xml.transform.TransformerFactory tf=javax.xml.transform.TransformerFactory.newInstance();
    javax.xml.transform.Transformer t=tf.newTransformer();
    t.setOutputProperty("encoding","UTF-8");
    t.transform(doms,sr);

    }catch(Exception a){
    a.printStackTrace();
    }
    try{
    rs.close();
    }catch(Exception err1){
    System.out.println(err1.getMessage());
    }
    return null;
    }
    }