这是js代码:
function CheckForm()    
{    
  var els = student.elements;    
 //遍历所有表元素
var value="";
var temp="";
var t=0;
    for(var i=0;i<els .length;i++)    
     {
  if(els[i].type=="text"){
  if(GetValue(els[i]).length!=0){
   value+="s."+els[i].id+" like '%"+GetValue(els[i])+"%':";

   t++;
  }
  }
   if(els[i].type=="select-one")
   {
   
   if(GetValue(els[i])!=0){
   value+="s."+els[i].id+"='"+GetValue(els[i])+"':";
   t++;
   }
   }


 }  
    document.getElementById('key').value=value;//将数据放入hidden中
    document.getElementById('value').value=t;//讲数据放入value中
    
} function check()    
{    
  var els = student.elements;    
 //遍历所有表元素
var value="";
var temp="";
var t=0;
    for(var i=0;i<els .length;i++)    
     {
  if(els[i].type=="text"){
  if(GetValue(els[i]).length!=0){
   value+="s."+els[i].id+" like '%"+GetValue(els[i])+"%':";

   t++;
  }
  }
   if(els[i].type=="select-one")
   {
   
   if(GetValue(els[i])!=0){
   value+="s."+els[i].id+"='"+GetValue(els[i])+"':";
   t++;
   }
   }


 }  
    if(value.length==0){
     alert("最少要有一个条件!");
     return false;
    
    }
    


function GetValue(el)    
{    
    //取得表单元素的类型    
     var sType = el.type;    
    switch(sType)    
     {    
        case "text":   return el.value;
        case "textarea": return el.value;    
        case "checkbox":    
        case "radio": return GetValueChoose(el);    
        case "select-one":    return GetValueSel(el); 
        case "select-multiple": return GetValueSel(el);    
     }    
    //取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数    
}
function GetRadioValue(el)    
{    
      
   //取得第一个元素的id,搜索这个元素组    
    var tmpels = document.getElementById(el.id); 
    var sValue="";
  
          sValue=tmpels.value;   
     
  
  if(sValue.length==0){
   
   sValue=0
  }        
   return sValue;    
}    

    function GetValueChoose(el)    
     {    
           
        //取得第一个元素的id,搜索这个元素组    
         var tmpels = document.getElementsByName(el.name); 
         var sValue="";
       for(var y=0;y<tmpels.length;y++){
        
        if(tmpels[y].checked)    
           {    
               sValue=tmpels[y].value;   
           } 
       }
       if(sValue.length==0){
        
        sValue=0
       }
          
           
        return sValue;    
     }    
    //取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数    
     function GetValueSel(el)    
     {    
    
            var   name   =  document.getElementsByName(el.name);
var  selectValue=name[0].value;
        return selectValue;    
     }   

解决方案 »

  1.   

    selectstudents.jsp:
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@page import="com.org.Dao.* "  %>
    <%@page import="com.org.PoJo.*"  %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'selectstudents.jsp' starting page</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script  type="text/javascript" src="../js/detailselect.js"></script>
      </head>
      
      <body>
      <form method="post" action="show.action" id="student" name="student" onsubmit="return CheckForm()">
    <table width="865" border="0">
      <tr>
         <td width="93">学号</td>
        <td width="231"><input type="text" name="sno" id="sno" /></td>
        <td width="93">姓名</td>
        <td width="231"><input type="text" name="sname" id="sname" /></td>
         
         <td>班级</td>
        <td><input type="text" name="sclass" id="sclass" /></td>
        <td> <input type="hidden" name="key" id="key" />
        <input type="hidden" name="value" id="value" /></td>
     
      </tr>
      <tr>
       
        
     
      <tr>
     
        <td><input type="submit" name="button" id="button" value="查询" onclick="return check();" /></td>
      
        <td> <input type="hidden" name="key" id="key" />
        <input type="hidden" name="value" id="value" /></td>
     
      </tr>
    </table>
      
         <%
     StudentDAO student=new StudentDAOImp();
     if(session.getAttribute("sno")!=null){
     List<Student> list=(List<Student>)session.getAttribute("sno");
       //System.out.println(session.getAttribute("sno"));
       for(Student s:list)
       {
     
    %>
      
    <br/>
    <div id="center">
     <table  border="0">
    <tr>
      <td width="103">学号</td>
      <td width="61">姓名</td>
      <td width="46">性别</td>
      <td width="134">专业</td>
      <td width="49">班级</td>
      <td width="105">联系方式</td>
      <td width="164">电子邮箱</td>
      <td width="314">详细住址</td>
    </tr>
    <tr>
      <td><%=s.getSno() %></td>
      <td><%=s.getSname() %></td>
      <td><%=s.getSex() %></td>
      <td><%=s.getSsubject() %></td>
      <td><%=s.getSclass() %></td>
      <td><%=s.getPhone() %></td>
      <td><%=s.getEmail() %></td>
      <td><%=s.getSaddress() %></td>
      <td></td>
    </tr>

    </table>
    </form>
      <s:actionmessage/>
      <s:actionerror/>
      
      </body>
      <%}}%>
    </html>
      

  2.   

    还有就是action类package com.org.Action;import java.util.List;import javax.servlet.http.HttpServletRequest;
    import com.opensymphony.xwork2.ActionSupport;
    import com.org.Dao.detailselectDAO;
    import com.org.Dao.detailselectDAOImp;
    import com.org.PoJo.Student;import org.apache.struts2.ServletActionContext;public class detailselectaction extends ActionSupport {
    private int value;
    private  String   key;
    private Student student;
    private List<Student> list;
    public int getValue() {
    return value;
    }
    public void setValue(int value) {
    this.value = value;
    }
    public Student getStudent() {
    return student;
    }
    public void setStudent(Student student) {
    this.student = student;
    }
    public List<Student> getList() {
    return list;
    }
    public void setList(List<Student> list) {
    this.list = list;
    }
    public String getKey() {
    return key;
    }
    public void setKey(String key) {
    this.key = key;
    }
    @Override
    public String execute() throws Exception{
    HttpServletRequest request=ServletActionContext.getRequest();
    String studentsinfo=(String)request.getSession().getAttribute("studentsinfo");
    if(this.check()){
    String key=this.Value();
    detailselectDAO select=new detailselectDAOImp();
    key=studentsinfo+" and "+key;
    List<Student> list=select.findByValue(key); request.getSession().setAttribute("key", list);
    }

    return "success";    
    }public String Value(){
    String s[]=this.getKey().split(":");
    String temp = "";
    for(int i=0;i<s.length;i++){
    temp+=s[i]+"and ";
    }
    temp=temp.substring(0, (temp.length()-4));
    return temp;
    }
    public boolean check(){
    boolean f=false;
    String s[]=this.getKey().split(":");
    if(s.length==this.getValue()){
    f= true;

    }else{
    f=false;

    }
    return f;
    }
    }
    请走过路过都看看,js的效果就是根据一个两个填写的text返回查询数据库,可是不知道哪步有问题,跳转不到
      

  3.   

    struts.xml
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    <package name="assistant"       extends="struts-default" >
      <action name="Save" class="com.org.Action.assistantAction" method="save">
        <result name="success" type="redirect">/show.jsp</result>
        <result name="error">/errors.jsp</result>
        <result name="message">/WEB-INF/page/message.jsp</result>
       </action>
     
       <action name="List" class="com.org.Action.assistantAction" method="list" >
        <result name="success">/show.jsp</result>
        <result name="error">/errors.jsp</result>
        <result name="message">/WEB-INF/page/message.jsp</result>
       </action>
    <action name="Update" class="com.org.Action.assistantAction" method="update">
        <result name="success" type="redirect">/show.jsp</result>
        <result name="error">/errors.jsp</result>
        <result name="message">/WEB-INF/page/message.jsp</result>
       </action>
       <action name="Edit" class="com.org.Action.StudentAction"   method="edit"    >
        <result name="success">/studentlist.jsp</result>
        <result name="error">/errors.jsp</result>
       </action>
       
      <action name="show" class="com.org.Action.detailselectaction"   method="execute"    >
        <result name="success">/selectstudents.jsp</result>
        <result name="error">/failure.jsp</result>
       </action>
     
      </package>
    </struts>
      

  4.   

    路径对吗?
    function CheckForm()   

    alert("test");  

    可以先测试下
      

  5.   

    你的js 有没有语法错误,比如中英文标点啊 什么的我说个我遇到的问题吧,是页面编码的刚开始整个项目的默认是UTF-8的,后来我在页面里 charset 和 encoding都设置为gb2312结果发现 IE里外部引用的js全都用不了了,但是在firefox能够正常运行,后来才发现时编码问题,又改成UTF-8后 正常了
      

  6.   

    <script type="text/javascript" src="<%=request.getContextPath()%>/js/detailselect.js"></script>
    1:如果不行的话,说明你js写的有错误。
      

  7.   

    可能是你调用js的时候的路径问题。如果路径没错 那就说明你的JS中有错误。