这个与你struts_config.xml中path的配置和你程序的目录结构有关系
试试onchang="**.do"或者onchang="/subpath/**.do"
检查一下

解决方案 »

  1.   

    可以用ajax实现,下面给出了jsp页面代码和后台servlet代码,凑活着看了~~<%@ page contentType="text/html; charset=GBK"%>
    <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
    <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
    <%@ page import="com.xzh.docsys.util.Constant" %>

    <%
        response.setHeader("Pragma","No-cache");
        response.setHeader("Cache-Control","no-cache");
        response.setDateHeader("Expires", 0);
    %><title>xxx系统</title>
    <link href="<%= request.getContextPath()%>/style/style.css" rel="stylesheet" type="text/css" />

    <h5>&nbsp;流程模版名称:<bean:write name="strModName"/></h5>
    <h5>&nbsp;流程模版类型:<logic:equal name="strModSort" value="<%=Constant.SORT_SIGN.toString()%>">联合签批流程模版</logic:equal>
    <logic:equal name="strModSort" value="<%=Constant.SORT_STAMP.toString()%>">联合盖章流程模版</logic:equal>
    </h5>
    <html:form action="/flowTemplate/createFlowPlate.do">
    <logic:present name="flowPlateForm" property="strModId">
    <input type="hidden" name="strModId" value='<bean:write name="flowPlateForm" property="strModId"/>'>
    </logic:present>
    <table width="41%" border="0" align="center">
      <tr> 
        <td colspan="2">部门选择:<select name="dep_id"  style="width:300;" id="department_id" onchange="refreshUserList();">
    <option value="-1">---请您选择需要添加人员所在的部门---</option>
    <logic:iterate name="departments" id="dep">
    <option value='<bean:write name="dep" property="orgId"/>'><bean:write name="dep" property="orgName"/></option>
    </logic:iterate>
    </select>
        </td>
      </tr>
      <tr>
        <td width="47%" height="33">待选人员</td>
        <td width="53%">已选人员</td>
      </tr>
      <tr> 
        <td height="152"><select name="userNoChoose" style="width:300;"  id="auser" size="10" ondblclick="addUser()"></select>
        </td>
        <td><select name="userChoose" style="width:200;"  id="chooseuser" size="10" ondblclick="delUser()" multiple></select>
        </td>
      </tr>
      <tr>
        <td colspan="2">&nbsp;</td>
      </tr>
    </table>
    </html:form><script language="JavaScript">
      
    function getSelectIndex(elementId) {
        var s = document.getElementById(elementId);
        var ix = 0;
        for (var i = 0; i < s.length; i++) {
            if (s.options[i].selected) {
                ix = i;
            }
        }
        return ix;
    }
      
    function addUser(){
    var userNoChoose = document.getElementById("userNoChoose");
    var userChoose = document.getElementById("userChoose");
            if(userNoChoose.length>0)
           {
      var ix = getSelectIndex("userNoChoose");
      var value = userNoChoose.options[ix].value;
      var text = userNoChoose.options[ix].text;
      userNoChoose.options.remove(ix);
      userChoose.add(Option(text,value));
           }  
    }function delUser(){
    var userNoChoose = document.getElementById("userNoChoose");
    var userChoose = document.getElementById("userChoose");
            if(userChoose.length>0)
           {
      var ix = getSelectIndex("userChoose");
      var value = userChoose.options[ix].value;
      var text = userChoose.options[ix].text;
      userChoose.options.remove(ix);
      userNoChoose.add(Option(text,value));
           } 
    }
      
    function sub()
    {
        var userChoose = document.getElementById("chooseuser");
       
        if(userChoose.length<1) 
        {
          alert("请选择用户");  
          return false;
        }
       
        for(var i=0;i<userChoose.length;i++){      
          userChoose.options[i].selected=true;  
          userChoose.options[i].value;
        }
       
         document.forms[0].submit();
      }
      
      var xmlHttp;

    function createXMLHttp(){
    if(window.ActiveXObject){
    try{
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    try{
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
    xmlHttp = false();
    }
    }
    }else if(window.XLMHttpRequest){
    xmlHttp = new XMLHttpRequest();
    }
    } function refreshUserList(){
    var dep_id = document.getElementById("department_id").value;

    if(dep_id=="" || dep_id=="-1"){
    clearUserList();
    return;
    }
    //RefreshUserList为servlet
    var url = "RefreshUserList?" + createQueryString(dep_id) + "&ts=" + new Date().getTime();

    createXMLHttp();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET" , url , true);
    xmlHttp.send(null);
    }

    function createQueryString(dep_id){
    var queryString = "dep_id=" + dep_id ;
    return queryString;
    }

    function handleStateChange(){
    if(xmlHttp.readyState == 4){
    updateUserList();
    }
    } function updateUserList(){
    clearUserList();

    var user = document.getElementById("auser");
    var results = xmlHttp.responseXML.getElementsByTagName("user");
    var idvalues = xmlHttp.responseXML.getElementsByTagName("value");
    var option = null;
    for(var i = 0 ; i < results.length; i++){
    option = document.createElement("option");
    option.value = idvalues[i].firstChild.nodeValue;
    option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));
    user.appendChild(option);
    }
    }

    function clearUserList(){
    var users = document.getElementById("auser");
    while(users.childNodes.length > 0){
    users.removeChild(users.childNodes[0]);
    }
    }
    </script>
    servlet片段代码
    response.setContentType("text/html;charset=UTF-8");
    StringBuffer results = new StringBuffer("<users>");
    //根据传入的部门id查找部门下的人员,然后将他们添加进results中
    for(...){
        results.append("<user>");
        results.append("用户名称:" + user1.getUserRealName());
        results.append("</user>");
        results.append("<value>");
        results.append(user1.getUserId());
        results.append("</value>");    
    }
    results.append("</users>");
    response.setContentType("text/xml");
    response.getWriter().write(results.toString());