这是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;
}
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;
}
<%@ 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>
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返回查询数据库,可是不知道哪步有问题,跳转不到
<!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>
function CheckForm()
{
alert("test");
}
可以先测试下
1:如果不行的话,说明你js写的有错误。