Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用jsp:useBean处理表单?_Java_Jsp_Servlets - Fatal编程技术网

Java 如何使用jsp:useBean处理表单?

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

我正在尝试处理一个简单的JSP表单,它接受您的名字和姓氏,然后打印:

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);
    }
}