Java 如何使用jsp:useBean处理表单?
我正在尝试处理一个简单的JSP表单,它接受您的名字和姓氏,然后打印:Java 如何使用jsp:useBean处理表单?,java,jsp,servlets,Java,Jsp,Servlets,我正在尝试处理一个简单的JSP表单,它接受您的名字和姓氏,然后打印: Your first name: entered_first_name Your last name: entered_last_name 使用jsp:useBean操作标记,到目前为止没有运气 首先让我展示一下到目前为止我写的东西,然后我将解释这个问题。 这是UserData类的外观: package pack; public class UserData { private String firstNam
Your first name: entered_first_name
Your last name: entered_last_name
使用jsp:useBean操作标记,到目前为止没有运气
首先让我展示一下到目前为止我写的东西,然后我将解释这个问题。
这是UserData类的外观:
package pack;
public class UserData {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<jsp:useBean id="userinfo" class="pack.UserData" scope="session"></jsp:useBean>
<jsp:setProperty property="*" name="userinfo"/>
<body>
<form action="MyServlet" method="post">
First Name: <input type="text" name="firstName"><br>
Last Name: <input type="text" name="lastName"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
第一个表单index.jsp是这样的:
package pack;
public class UserData {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<jsp:useBean id="userinfo" class="pack.UserData" scope="session"></jsp:useBean>
<jsp:setProperty property="*" name="userinfo"/>
<body>
<form action="MyServlet" method="post">
First Name: <input type="text" name="firstName"><br>
Last Name: <input type="text" name="lastName"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
这是另一个.jsp:
这显然很糟糕。
首先,也是最重要的:我做错了什么?为什么不调用setter?
第二,正如您可能注意到的,MyServlet.java做的不多。它只重定向到另一个.jsp,所以我真的需要它吗?在重定向之间没有太多工作要做的情况下,有没有一种更快速、更优雅的方法来从一个jsp重定向到另一个jsp 转发前,必须在servlet的请求属性中放入UserData bean:
UserData userinfo;
userinfo.setFirstName(request.getParameter("firstName");
userinfo.setLastName(request.getParameter("lastName");
request.addAttribute("userinfo", userinfo);
request.getRequestDispatcher("another.jsp").forward(request, response);
如果您想让事情自动发生,就必须使用Struts2、Spring MVC或…简单表单示例等框架来理解Bean属性 index.html
您将获得在html页面中输入的值。没有tomcat作为服务器。框架在某种意义上类似于弹簧、支柱。它实现了java特性并帮助您构建mvcapps@so.very.tired:否,Tomcat是一个servlet容器。MVC框架的示例有或
UserData userinfo;
userinfo.setFirstName(request.getParameter("firstName");
userinfo.setLastName(request.getParameter("lastName");
request.addAttribute("userinfo", userinfo);
request.getRequestDispatcher("another.jsp").forward(request, response);
<form action="welcome.jsp">
Enter Name:<input type="text" name="firstName"/>
<input type="submit" value="go" />
</form>
<jsp:useBean id="obj" class="pack.UserData" />
<jsp:setProperty name="obj" property="*" />
Welcome, <jsp:getProperty name="obj" property="firstName" />
public class UserData {
private String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
System.out.print("the values are"+firstName);
}
}