Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
如何将jsp:usebeansetproperty转换为两个具有相同属性名的不同bean?_Jsp - Fatal编程技术网

如何将jsp:usebeansetproperty转换为两个具有相同属性名的不同bean?

如何将jsp:usebeansetproperty转换为两个具有相同属性名的不同bean?,jsp,Jsp,我不熟悉JSP Usebean。。我试过下面的场景。当我提交表格时,学生姓名也被设置为学院名称。因为,两个bean具有相同的属性名。是否有任何方法可以避免此冲突并设置正确的值 Summary.jsp <jsp:useBean id="student" class="demo.jsp.beans.Student" scope="page"></jsp:useBean> <jsp:setProperty property="*" name="student"/&

我不熟悉JSP Usebean。。我试过下面的场景。当我提交表格时,学生姓名也被设置为学院名称。因为,两个bean具有相同的属性名。是否有任何方法可以避免此冲突并设置正确的值

Summary.jsp

<jsp:useBean id="student" class="demo.jsp.beans.Student" scope="page"></jsp:useBean>
    <jsp:setProperty property="*" name="student"/>
    <jsp:useBean id="college" class="demo.jsp.beans.College" scope="page"></jsp:useBean>
    <jsp:setProperty property="*" name="college"/>
College.java

public class College {
  private String name;
}
Index.jsp

<form method="post" action="summary.jsp">
        <table>
            <tr><td> Name</td><td>:</td><td><input name="name"/></td></tr>
            <tr><td> DOB</td><td>:</td><td><input name="dob"/></td></tr>
            <tr><td> College</td><td>:</td><td><input name="name"/></td></tr>
            <tr><td> </td><td></td><td><input type="submit"></td></tr>
        </table>
    </form>

姓名:
出生日期:
学院:

jsp:useBean已过时。只需将bean放入会话中:

BeanName beanvar = new BeanName();
beanvar.member = "whatever";
session.setAttribute("sessionvarname", beanvar);
并通过以下方式检索它们:

BeanName var = (BeanName)session.getAttribute("sessionvarname");
在这里,您甚至不使用会话范围,而只使用页面范围,您的代码如下所示:

demo.jsp.beans.Student student = new demo.jsp.beans.Student();
student.name = request.getParameter("student_name");

demo.jsp.beans.College college = new demo.jsp.beans.College();
college.name = request.getParameter("college_name");
如果您希望将它们放入会话中:

session.setAttribute("student_bean", student);
session.setAttribute("college_bean", college);
要从会话中检索以在另一页上使用,请执行以下操作:

demo.jsp.beans.Student student = (demo.jsp.beans.Student) session.getAttribute("student_bean");
demo.jsp.beans.College college = (demo.jsp.beans.College) session.getAttribute("college_bean");
您需要将表单更改为输入具有唯一名称的位置:

        <tr><td> Name</td><td>:</td><td><input name="student_name"/></td></tr>
 ...
        <tr><td> College</td><td>:</td><td><input name="college_name"/></td></tr>
名称:
...
学院:
        <tr><td> Name</td><td>:</td><td><input name="student_name"/></td></tr>
 ...
        <tr><td> College</td><td>:</td><td><input name="college_name"/></td></tr>