我有一个 login.jsp
页面:
<form method="post" action="url:8081/login.xhtml">
Username : <input type="text" name="txtUsername"/>
Password : <input type="text" name="txtPassword"/>
<input type="submit" value="submit"/>
</form>
提交时,如何获取login.xhtml
中的txtUsername
和txtPassword
参数?
最佳答案
所有请求参数都在 #{param}
映射可用的 EL 中。因此,应该这样做:
<p>Username: #{param.txtUsername}</p>
<p>Password: #{param.txtPassword}</p>
如果您需要通过 Java 代码对它们进行预处理,最好将它们作为托管属性或 View 参数放在与 login.xhtml
关联的支持 bean 类中。
托管属性示例:
@ManagedBean
@RequestScoped
public class Login {
@ManagedProperty("#{param.txtUsername}")
private String username;
@ManagedProperty("#{param.txtPassword}")
private String password;
@PostConstruct
public void init() {
// Do here your thing with those parameters.
System.out.println(username + ", " + password);
}
// ...
}
查看参数示例:
<f:metadata>
<f:viewParam name="txtUsername" value="#{login.username}" required="true" />
<f:viewParam name="txtPassword" value="#{login.password}" required="true" />
<f:event type="preRenderView" listener="#{login.init}" />
</f:metadata>
与
@ManagedBean
@RequestScoped
public class Login {
private String username;
private String password;
public void init() {
// Do here your thing with those parameters.
System.out.println(username + ", " + password);
}
// ...
}
另见:
关于jsf-2 - 如何从 Facelets 页面中的 JSP 页面获取请求参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876430/