服务器端验证(使用StringBuilder对象,存储错误消息) [英] Server side validation( using StringBuilder object, to store error messages)
问题描述
Hello guys
我正在尝试进行服务器端验证。我在StringBuilder对象中存储错误消息。如果,我以错误的格式输入值,那么它工作正常.....但是,如果我以正确的格式输入值,则无法显示成功消息...
我发现问题与StringBuilder对象有关。但无法弄清楚确切的问题。
如果我使用length(),方法而不是equals()方法那么它工作正常。
...请帮我解决这个问题
Hello guys
I am trying to do server side validation. i am storing error messages in StringBuilder object. If, I enter values in wrong format, Then it is working fine.....but ,if I enter values in proper format, it is failing to display success msg...
I found that Problem is with StringBuilder object. but unable to figure out the exact problem.
If I use length(), method instead of equals() method then it works fine.
...pls help me to sort out this issue
public void validateForm(ActionRequest request, ActionResponse actionResponse)
{
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
String telephone = request.getParameter("phone");
String email = request.getParameter("email");
String comments= request.getParameter("comments");
StringBuilder errorMsg=new StringBuilder();
//StringBuffer errorMsg=new StringBuffer();
System.out.println(errorMsg.equals(""));
System.out.println(errorMsg.length());
System.out.println("errrr="+errorMsg);
String fname="[a-zA-z]+([ '-][a-zA-Z]+)*";
String lname="[a-zA-z]+([ '-][a-zA-Z]+)*";
String matchPhoneNumberPattern="[0-9]*";
String emailPattern="^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
if (firstName == null ||firstName.equals(""))
{
errorMsg.append("Please Enter First Name "+"<br />");
}
else if(!firstName.matches(fname))
{
errorMsg.append("Please Enter First Namet "+"<br />");
}
if(lastName == null ||lastName .isEmpty())
{
errorMsg.append("Please Enter Last Name "+"<br />");
}
else if(!lastName.matches(lname))
{
errorMsg.append("Enter lastname in Name Format "+"<br />");
}
if(telephone == null || telephone.isEmpty())
{
errorMsg.append("Please Enter Telephone Number "+"<br />");
}
else if(!telephone.matches(matchPhoneNumberPattern))
{
errorMsg.append("Invalid Number please Enter valid number"+"<br />");
}
if(email == null || email.isEmpty())
{
errorMsg.append("Please Enter Email "+"<br />");
}
else if(!email.matches(emailPattern))
{
errorMsg.append("Invalid email id"+"<br />");
}
if (comments == null || comments.equals(""))
{
errorMsg.append("You must Enter Comments "+"<br />");
}
/*IN all cases this if block is executing,EVen though i enter all fields in proper format */
System.out.println(errorMsg.equals(""));
if(!errorMsg.equals(""))
{
request.setAttribute("errorMsg", errorMsg);
request.setAttribute("phone", telephone);
request.setAttribute("email", email);
System.out.println("If block..........!");
}
else
{
String successMsg="Form Submited Successfully";
request.setAttribute("successMsg", successMsg);
System.out.println("done..........!");
}
}
推荐答案
;
if (firstName == null || firstName.equals( ))
{
errorMsg.append( 请输入名字 + < br />);
}
else if (!firstName.matches(fname) ))
{
errorMsg.append( 请输入名字第一个 + < br />);
}
if (lastName == null || lastName .isEmpty())
{
errorMsg.append( 请输入姓氏 + < br / >中跨度>);
}
else if (!lastName.matches(lname) ))
{
errorMsg.append( 以名称格式输入姓氏 + < br />);
}
if (telephone == null || telephone.isEmpty())
{
errorMsg.append( 请输入电话号码 + < br />);
}
其他 if (!telephone.matches(matchPhoneNumberPattern) ))
{
errorMsg.append( 无效数字请输入有效数字 + < br />);
}
if (email == null || email.isEmpty())
{
errorMsg.append( 请输入电子邮件 + < br />);
}
其他 if (!email.matches(emailPattern) ))
{
errorMsg.append( 无效的电子邮件ID + < br />);
}
if (comments == null || comments.equals( ))
{
errorMsg.append( < span class =code-string>您必须输入注释 + < br /> 跨度>);
}
/ * 在所有情况下这个if块正在执行,即使我以正确的格式输入所有字段* /
System.out.println(errorMsg.equals( ));
if (!errorMsg.equals( ))
{
request.setAttribute( errorMsg,errorMsg);
request.setAttribute( phone,电话);
request.setAttribute( email,email);
System.out.println( if block ......... !跨度>);
}
else
{
String successMsg = 表单成功提交;
request.setAttribute( successMsg,successMsg);
System.out.println( done ..........!跨度>);
}
}
"; if (firstName == null ||firstName.equals("")) { errorMsg.append("Please Enter First Name "+"<br />"); } else if(!firstName.matches(fname)) { errorMsg.append("Please Enter First Namet "+"<br />"); } if(lastName == null ||lastName .isEmpty()) { errorMsg.append("Please Enter Last Name "+"<br />"); } else if(!lastName.matches(lname)) { errorMsg.append("Enter lastname in Name Format "+"<br />"); } if(telephone == null || telephone.isEmpty()) { errorMsg.append("Please Enter Telephone Number "+"<br />"); } else if(!telephone.matches(matchPhoneNumberPattern)) { errorMsg.append("Invalid Number please Enter valid number"+"<br />"); } if(email == null || email.isEmpty()) { errorMsg.append("Please Enter Email "+"<br />"); } else if(!email.matches(emailPattern)) { errorMsg.append("Invalid email id"+"<br />"); } if (comments == null || comments.equals("")) { errorMsg.append("You must Enter Comments "+"<br />"); } /*IN all cases this if block is executing,EVen though i enter all fields in proper format */ System.out.println(errorMsg.equals("")); if(!errorMsg.equals("")) { request.setAttribute("errorMsg", errorMsg); request.setAttribute("phone", telephone); request.setAttribute("email", email); System.out.println("If block..........!"); } else { String successMsg="Form Submited Successfully"; request.setAttribute("successMsg", successMsg); System.out.println("done..........!"); } }
我认为你应该考虑ArrayList< errorinfo>改为使用errorList方法。
I think you should consider the ArrayList<errorinfo> errorList approach instead.
if(!errorMsg.equals(""))
然后,将此行更改为
Then,change this line to
if(errorList.size()>0){
}
试试,
Try,
if(errorMsg != String.Empty)
而不是
instead of
if(!errorMsg.equals(""))
顺便说一句,你实际上可以使用System.Text.StringBuilder,因为你不需要处理拳击它会更便宜和解拳。
Btw, you can actually use the System.Text.StringBuilder, it would be less expensive to use because you don't have to deal with boxing and un-boxing.
这篇关于服务器端验证(使用StringBuilder对象,存储错误消息)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!