【问题标题】:Getting form information in JSP using Apache Struts 2使用 Apache Struts 2 在 JSP 中获取表单信息
【发布时间】:2015-06-27 05:11:53
【问题描述】:

我正在学习 Apache Struts 2,我需要帮助从文本字段获取用户输入。

在我的 JSP 中有:

<s:form action="login">
    <s:textfield label="Username" />
    <s:textfield label="Password" />
    <s:submit />
</s:form>

在我的 Java 文件中:

List<UserData> users = new ArrayList<UserData>();
private Map<String, Object> session;

public String execute() {
    addUser("SeyCC", "loop"); //@param Username, password
    session.put("user", users.get(0).getUsername());

    if(form info matches a username and password in list)
       return SUCCESS;

    return ERROR;
}

public void addUser(String username, String password) {
    users.add(new UserData(username, password));
}

我的UserData.java 只有两个字符串。一个用于用户名,一个用于密码。我的问题是您看到的 if 语句。如何获取用户在文本字段中输入的用户名和密码并检查列表以查看它是否在其中?

【问题讨论】:

  • 你有struts.xml吗?表单及其字段在提交时应绑定到操作,否则不会执行。
  • 是的,我有一个 struts.xml。罗马的回答回答了我的问题。不过谢谢!

标签: java validation jsp configuration struts2


【解决方案1】:

首先您需要将文本字段绑定到操作

<s:form action="login">
    <s:textfield key="Username" />
    <s:textfield key="Password" />
    <s:submit />
</s:form>

key 属性可用于name、label、value。请参阅textfield 定义。

名称为login 的操作应具有配置映射。在struts.xml 中使用它,或者您可以使用configuration by convention。

public class LoginAction extends ActionSupport implements SessionAware, Preparable {
  List<UserData> users = new ArrayList<UserData>();
  private Map<String, Object> session;

  /**
   * Field to store username.
   */
  private String username;


  public String getUsername() { return username; }

  public void setUsername(String username) { this.username = username; }

  /**
   * Field to store password.
   */
  private String password;

  public String getPassword() { return password; }

  public void setPassword(String password) { this.password = password; }

  @Override
  public void setSession(Map<String, Object> session){ this.session = session; }

  @Override
  public void prepare() throws Exception {
    addUser("SeyCC", "loop"); 
  }


  public String execute() {

    if (!users.get(0).getUsername().equals(username) || !users.get(0).getPassword().equals(password))
       return ERROR;

    session.put("user", users.get(0).getUsername());

    return SUCCESS;
  }

  //@param username, password
  public void addUser(String username, String password) {
    users.add(new UserData(username, password));
  }
}

【讨论】:

  • 非常感谢!这些链接也很有帮助。
猜你喜欢
  • 2013-05-15
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2018-06-04
相关资源
最近更新 更多