谁能帮我看一下验证为什么出不来呢?点击提交也没反应?求帮忙啊!!!

亡灵S 发布于 2012/07/20 08:48
阅读 674
收藏 0

没显示错误,但是直接跳过第一层javascript而进入form验证了,而且第三层验证(action里的)也出不来,就算用户名都正确,仍旧还是停留在login.jsp页面,虽然网址上显示的是http://localhost:8080/biyele/login.do。

我十分怀疑这个错误很简单,但是我真的是实在看不出来了,谁能帮我看一下,先打字费劲,简单谁几句也行啊。。拜托了。。谢谢!

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %>    
<%@taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %>

<html>
<head>

  
  	<script type="text/javascript" src="JS/main.js"></script>
  	
  	<script type="text/javascript">
  		function testLogin(lForm){
  			var uname=lForm.uname.value;
  			var upass=lForm.upass.value;
  			var valiCode=lForm.valiCode.value;
  			
  			
  			  
			
  			if(uname==null||uname.trim().length==0){
  				alert("<bean:message key="UserNotNull" />");
  				return false;
  			}else if(upass==null||upass.trim().length==0){
  				alert("<bean:message key="PasswordNotNull" />");
  				return false;
  			}else if(valiCode==null||valiCode.trim().length==0){
  				alert("<bean:message key="ValiCodeNotNull" />");
  				return false;
  			}else{
  				return true;
  			}
  			
  		}
  	
  	</script>
  </head>

<body>

<h1><bean:message key="choice"/></h1>
<a href="loginChangeLanguage.do?lang=en_GB" ><bean:message key="en"/></a>
<a href="loginChangeLanguage.do?lang=zh_CN" ><bean:message key="zh"/></a>
<a href="loginChangeLanguage.do?lang=null" ><bean:message key="default"/></a>

<h1 ><bean:message key="loginpage" /></h1>

<form action="login.do" method="post" id="lForm" onsubmit="return testLogin(this)">

<table>
<tr>

<td><bean:message key="uname"/></td>
<td>
<input type="text" name="uname" size="15"/>
<html:errors property="UserNotNull"/>
<html:errors property="error.uname.wrong"/>
</td>
</tr>
<tr>
<td><bean:message key="upass"/></td>
<td>
<input type="password" name="upass" size="15"/>
<html:errors property="PasswordNotNull"/>
<html:errors property="error.upass.wrong"/>
</td>
</tr>


<tr>
		<td ><bean:message key="valiCode" /></td>
		<td><input type="text" name="valiCode" size="10">
		<html:errors property="ValiCodeNotNull"/>
		<html:errors property="error.valicode.wrong"/>
		</td>
</tr>
<tr>	<td align="right" >	<img alt="code..." name="randImage" id="randImage" 
    			 src="image.jsp"	width="60" height="20" 
    			 border="1" align="middle"/></td>
		<td>
		<a href="javascript:loadimage();" class="valink">
		<bean:message key="kanbuqing" />
		</a></td>
</tr>	

<tr><td><input type="submit" value="<bean:message key="login"/>"></td>
	<td><input type="reset" value="<bean:message key="reset"/>"></td>
</tr>	

</table>

</form>

</body>
</html>

loginActionForm.java

package com.yourcompany.struts.actionform;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class loginActionForm extends ActionForm {
	private String uname;
	private String upass;
	private String valiCode;
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getUpass() {
		return upass;
	}
	public void setUpass(String upass) {
		this.upass = upass;
	}
	
	public String getValiCode() {
		return valiCode;
	}
	public void setValiCode(String valiCode) {
		this.valiCode = valiCode;
	}
	
	public loginActionForm(String uname, String upass, String valiCode) {
		super();
		this.uname = uname;
		this.upass = upass;
		this.valiCode = valiCode;
	}
	
	public loginActionForm() {
		super();
	}
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors=new ActionErrors();
		if(uname==null||uname.trim().length()<1)
		{
			errors.add("UserNotNull", new ActionMessage("error.uname.null"));
		}
		if(upass==null||upass.trim().length()<1)
		{
			errors.add("PasswordNotNull",new ActionMessage("error.upass.null"));
			
		}else if(valiCode==null||valiCode.trim().length()<1)
		{
			errors.add("ValiCodeNotNull", new ActionMessage("error.valicode.null"));
		}
		return errors;
	}
	
	

} 

loginAction.java

 

package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import bean.MemberBean;

import com.yourcompany.struts.actionform.loginActionForm;

import dao.MemberDAO;

public class loginAction extends Action 
{

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		loginActionForm loginForm=(loginActionForm)form;
	
		MemberBean member=MemberDAO.findMemberByName(loginForm.getUname());
		
		ActionMessages errors=new ActionMessages();
		
		String valicode1=loginForm.getValiCode();
		HttpSession session=request.getSession();
		String valicode2=(String)session.getAttribute("rand");
		if(valicode1!=valicode2)
		{
			errors.add("error.valicode.wrong", new ActionMessage("error.valicode.wrong"));
			return mapping.getInputForward();
		}
		if(member==null)
		{
			errors.add("error.uname.wrong",new ActionMessage("error.uname.wrong"));
			saveErrors(request, errors);
			return mapping.getInputForward();
			
		}else if(!loginForm.getUpass().equals(member.getUpass()))
		{
			errors.add("error.upass.wrong",new ActionMessage("error.upass.wrong"));
			saveErrors(request, errors);
			return mapping.getInputForward();
			
		}else{
			
			session.setAttribute("user",member);
			return mapping.findForward("success");
		}
			
		
	}
	

}
public static MemberBean findMemberByName(String uname)
	{
		MemberBean member=null;
		try {
			Connection conn=DBConn.getConn();
			String sql="select * from biye_user where uname=?";
			PreparedStatement ps=conn.prepareStatement(sql);
			ps.setString(1, uname);
	
			ResultSet rs=ps.executeQuery();
			if(rs.next()){
				String upass=rs.getString("upass");
				String sex=rs.getString("sex");
				int age=rs.getInt("age");
				String local=rs.getString("local");
				String mail=rs.getString("mail");
				String head_Show=rs.getString("head_Show");
				String registation_Date=rs.getString("registation_Date");
				
				member=new MemberBean(uname, upass, sex, age, local, mail, head_Show, registation_Date);
				return member;	
			}
			DBConn.closeConn(conn);
		} 
		 catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return null;
	} 
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
 
  <form-beans >
  	<form-bean name="loginForm" type="com.yourcompany.struts.actionform.loginActionForm"></form-bean>
  </form-beans>
  
  <global-exceptions />
  <global-forwards />
  
  <action-mappings >
  	<action
		      input="/login.jsp"
		      path="/loginChangeLanguage"
		      type="com.yourcompany.struts.changeLanguageAction.LoginChangeLanguageAction">
		      <set-property property="cancellable" value="true" />
	</action>
	<action
		      input="/reg.jsp"
		      path="/regChangeLanguage"
		      type="com.yourcompany.struts.changeLanguageAction.RegChangeLanguageAction">
		      <set-property property="cancellable" value="true" />
	 </action>
	 
	
	
  	<action path="/login"
  			type="com.yourcompany.struts.action.loginAction"
  			name="loginForm"
  			scope="request"
  			validate="true"
  			input="/login.jsp">
  			<forward name="success" path="/loginSuccess.jsp"></forward>
  		
  	</action>
  	
  
  	
  </action-mappings>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

天啊。。就是个login页面就这样。。我以后不得死了。。求各位帮帮忙。。看一眼啊。谢谢!!!!!

加载中
0
如风随影
如风随影
你直接提交能不能action 咯
0
William
William

<form action="login.do" method="post" id="lForm" onsubmit="return testLogin(this)">


onsubmit 来验证 true/false 应该为IE写法? 记得其他浏览器不行的

y
yangc22
回复 @逝水fox :
逝水fox
逝水fox
其他浏览器也可以的,但是必须用retuen fun()的形式,如果直接调函数,即使函数返回true/flase也没效果的。
0
亡灵S
亡灵S

引用来自“风来人”的答案

你直接提交能不能action 咯
我把form里的验证关了。。还是停留在login.jsp页面,网址为http://localhost:8080/biyele/login.do
0
亡灵S
亡灵S

引用来自“William”的答案

<form action="login.do" method="post" id="lForm" onsubmit="return testLogin(this)">


onsubmit 来验证 true/false 应该为IE写法? 记得其他浏览器不行的

问题是我现在用myeclipse那个浏览器也不行。。我感觉这个应该是我的问题。。虽然不知道我的问题在哪儿- -
William
William
这个写法只有IE6可以吧? 其实任何都不行? 如果没记错就这样的
0
喵无声息
喵无声息
if (valicode1.equals(valicode2))
-----------------------------------------
你用Debug作调试
0
亡灵S
亡灵S

引用来自“亡灵S”的答案

引用来自“William”的答案

<form action="login.do" method="post" id="lForm" onsubmit="return testLogin(this)">


onsubmit 来验证 true/false 应该为IE写法? 记得其他浏览器不行的

问题是我现在用myeclipse那个浏览器也不行。。我感觉这个应该是我的问题。。虽然不知道我的问题在哪儿- -
以前做期末设计的时候。。使用过这种写法。。所以应该是可以的。。只是这次这次不知道为什么。。orz
0
亡灵S
亡灵S

引用来自“J..”的答案

if (valicode1.equals(valicode2))
-----------------------------------------
你用Debug作调试
我刚才按照你所说的在debug模式下试了一下,两个valicode都能取到值。。
0
紅顏為君笑
紅顏為君笑
return mapping.findForward("success"); 你把这里改成loginSuccess.jsp的路径看看 我想应该出在这里 另外 调式看看 能不能 运行到这里
0
亡灵S
亡灵S

引用来自“紅顏為君笑”的答案

return mapping.findForward("success"); 你把这里改成loginSuccess.jsp的路径看看 我想应该出在这里 另外 调式看看 能不能 运行到这里

好奇怪。。我在前一条语句session.setAttribute("user",member);处设置的断点,结果却告诉我找不到资源(感觉这段英文大致是这个意思。。)请问这个该怎么解决啊?

0
亡灵S
亡灵S
我有事儿得出去一趟。。大家要是回答我的问题。。我长时间没回复。。请别见怪
返回顶部
顶部