Могу ли я переписать свою функцию Java validts () Java Struts2 как XML-код проверки действия? - PullRequest
1 голос
/ 01 ноября 2010

В настоящее время я работаю над проверкой формы входа в систему.

У меня есть РАБОТАЮЩИЙ набор проверок в моих действиях:

// SNIP!!!!
    @Override
    public void validate() 
    { 
        if (userBean.getUserName().length() == 0)
            { addFieldError("userBean.userName", "Username is required."); }

        if (userBean.getPassword().length() == 0)
            { addFieldError("userBean.password", "Password is required."); }
        else if (!(
                    User
                        .findUser(userBean.getUserName())
                        .getPassword()
                        .equals(userBean.getPassword())
                ))  
            { addFieldError("userBean.password", "Password is invalid."); }
    }
// SNIP!!!!

Я пытаюсьчтобы выяснить, могу ли я переписать это в проверочный XML

Вот как выглядит мой XML в настоящее время

<!-- //src/hu/flux/user/LoginUserAction-validation.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
 <validator type="requiredstring">
  <param name="fieldname">userBean.userName</param>
  <message>Username is required.</message>
 </validator>
 <validator type="requiredstring">
  <param name="fieldname">userBean.password</param>
  <message>Password is required.</message>
 </validator>
  <validator type="fieldexpression">
  <param name="fieldname">userBean.password</param>
  <param name="expression"><![CDATA[
  (
   User
    .findUser(userBean.userName)
    .getPassword()
    .equals(userBean.password)
   ) 
  ]]></param>
        <!-- This error message is just for debugging -->
  <message>

    Password is invalid. 
    ${userBean.password} received. 
    ${(
   User
    .findUser(userBean.userName)
    .getPassword()
    .equals(userBean.password)
   )} expected.
  </message>
 </validator>
</validators>

Когда я пытаюсь использовать XML вместо JAVA, а затем отправить любой парольсообщение об ошибке, подобное этому, отображается в форме:

Password is invalid. sdfdsf received. expected.

"sdfdsf" может быть любым паролем, который я пытался использовать.

Возможно ли это сделать с помощью валидатора XML?Или мне нужно использовать функцию validation ()?

(я думал, что это работает в XML, но потом по какой-то необъяснимой причине он перестал работать.)

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