Получение нулевых значений со страницы jsp в Struts2 Action - PullRequest
3 голосов
/ 28 февраля 2011

Я использую 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;
}

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Может быть несколько элементов с именем usename на вашей странице jsp вместо использования document.getElementsByName для получения значения текстового поля, попробуйте использовать ссылку на форму document.formid.username.value
а также попробуйте установить пустое значение в объявлении вашего текстового поля имени пользователя, как <s:textfield .... value="" />

0 голосов
/ 04 марта 2011

В классе LoginAction вам потребуется метод getter и setter для атрибутов, которые вы хотите получить со страницы jsp.Попробуйте добавить к нему геттер и сеттеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...