Я использую Struts2 + JSP в качестве своих платформ J2EE.Иногда я получаю нулевые значения из текстовых полей Struts моей JSP-страницы в действия.например, на странице входа в систему, несмотря на проверку моих форм и предотвращение ввода неверных данных, таких как пустые или пустые, я все равно получаю нулевое значение для поля имени пользователя вместо фактического введенного значения.кто-нибудь сталкивался с таким случаем?
вот фрагмент кода, в котором происходит эта ошибка:
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String username;
private String password;
@SuppressWarnings({ "unchecked", "deprecation", "static-access" })
public String execute() {
try {
CacheLogger.getInstance().AddEnteredUsernameEvent(username);
UserSession userSession = UserSession.getInstance();
userSession.getPlayerById(username.toLowerCase()); //THE ONE WHERE I GET NULL VALUE (sometimes)
соответствующая страница JSP:
<s:form action="login.action" method="post" onsubmit="document.getElementsByName('password').item(0).value=sha1Hash(document.getElementsByName('password').item(0).value);return validateLogin()" style="text-align:center;">
<s:textfield name="username" maxlength="50" label="نام کاربری" tabindex="1" onfocus="hideMessage()" cssClass="loginTextField" />
<s:password name="password" maxlength="255" label="رمز عبور" tabindex="2" onfocus="hideMessage()" cssClass="loginTextField"/>
<input type="submit" name="Submit" value="ورود" class="submit" tabindex=3 onclick="javascript:$('#exception').css('display','none');$('#actionmessage').css('display','none');"/>
</s:form>
theкусок валидатора javaScript:
function validateLogin()
{
var username = document.getElementsByName('username').item(0).value;
var password = document.getElementsByName('password').item(0).value;
var input=/^[a-zA-Z]+[a-zA-Z0-9]+[a-zA-Z0-9]+\d*[a-zA-Z0-9]*$/;
if(!username)
{
showErrorMessage('خطا! نام کاربری را وارد نکرده اید',26);
return false;
}
else
if(!password)
{
showErrorMessage('خطا! رمز عبور را وارد نکرده اید',25);
return false;
}
else
if(!input.test(username))
{
showErrorMessage('خطا! در قسمت "معین خر است" کاراکتر غیر مجاز وارد کرده اید',49);
return false;
}
return true;
}