我没有使用任何MVC ..但我希望在我的JSP Servlets应用程序中获得相同的功能。
我有一些jsp,其中包含一些日期,字符串,数字......等文本字段。我创建了一个表单bean类,其中包含jsp中的文本字段名称以及下面的getter和setter ..
JSP(已编辑)
<form name="myForm" action="myAction" method="post">
<jsp:useBean id="jspBean" class="com.package.my.BeanClass" scope="request" />
<jsp:setProperty prperty="*" name="jspBean" />
//Below some text fields and date fileds
<table>
<tr>
<td>
UserName :
</td>
<td>
<input type="text" value="${myBean.userName}" name="userName"/>
</td>
</tr>
<td>
PassWord :
</td>
<td>
<input type="text" value="${myBean.passWord}" name="passWord"/>
</td>
</tr>
<td>
Date :
</td>
<td>
<input type="text" value="${myBean.date}" name="date"/>
// This text field is with JQUery Date picker
</td>
</tr>
<tr>
<td>
<input type="submit" value="login" />
</td
</tr>
</table>
</form>
在我的servlet中
// I Can get those text fields as Parameters i.e
req.getParameter("userName")
//And I cant get that bean Object `jspBean`
// I am trying to get that as below
sysout(req.getAttribute("jspBean"));//It prints null
// So I create a plain bean object and I am setting the data here
MyBean bean = new MyBean();
// bean.setUserName();
// I am setting all these fields whaterver needed
req.setAttribute("myBean",bean);
问题
1)我可以从Servlet
获取bean对象及其数据JSP
usinf EL
我可以做..我想要的是我想发送表单数据(全部)字段)作为BeanObject而不是参数..我无法实现,
如何实现这一点..请帮忙
提前致谢./
答案 0 :(得分:0)
您可能想要指定范围。
<jsp:useBean id="beanId" class="MyBeanClass" scope="request" />
然后在Servlet中:
MyBeanClass counter = (MyBeanClass)request.getAttribute("beanId");
此外,要使用${beanId.getField1()}
,您必须在JSP中将表达式语言设置为true。有关使用表达式语言,请参阅this link。
答案 1 :(得分:0)
问题是,在你的jsp中没有你的html表单与java bean绑定。
<input type="text" value="${myBean.userName}" name="userName"/>
因此,在servlet中,您无法从请求属性中获取值。使用简单的JSP和servlet,这是不可能完成的。
您可能使用Spring MVC
框架来实现此目的,您可以使用spring表单绑定java bean。或者你可以选择struts框架。
如果您仍想使用servlet,那么可以在servlet中使用此方法来使用请求构建java bean。
public MyBean valueOf(HttpServletRequest req) {
MyBean bean = new MyBean();
bean.setUserName(req.getParameter("userName"));
bean.setPassword(req.getParameter("passWord"));
...
return bean;
}
P.S。这是一个解决方法,而不是使用java bean绑定表单