Java 如何通过<;jsp:setBean>;并将其发送到servlet?
你能帮我想出解决办法吗。 有一个JSP页面将表单参数发送到servlet。 通常我通过HttpServletRequest.getParameter()解析参数,这对于参数数很小的表单很好。 现在我正在开发一个应用程序,这个应用程序有很多带有参数的JSP,并且表单处理的标准方式不方便。 我认为可能的解决办法可能是采取行动。 我不知道这对我是否有效。 我浏览了很多资料,但什么也没找到。 我的意思是,有任何关于在jsp中获取表单参数的信息, 自动创建实体类的实例, 将所有参数映射到实体属性,并将实体实例发送到servlet。 请看一下代码: index.jspJava 如何通过<;jsp:setBean>;并将其发送到servlet?,java,jsp,servlets,Java,Jsp,Servlets,你能帮我想出解决办法吗。 有一个JSP页面将表单参数发送到servlet。 通常我通过HttpServletRequest.getParameter()解析参数,这对于参数数很小的表单很好。 现在我正在开发一个应用程序,这个应用程序有很多带有参数的JSP,并且表单处理的标准方式不方便。 我认为可能的解决办法可能是采取行动。 我不知道这对我是否有效。 我浏览了很多资料,但什么也没找到。 我的意思是,有任何关于在jsp中获取表单参数的信息, 自动创建实体类的实例, 将所有参数映射到实体属性,并将实体
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="NewFormServlet" enctype="application/x-www-form-urlencoded">
<jsp:useBean id="client-bean" class="model.entity.Client" scope="request"/>
<h3>Please enter client information</h3><br>
Client first name<input type="text" name="first-name"/><br>
<jsp:setProperty name="client-bean" property="firstName" value="${requestScope.first-name}"/>
Client last name<input type="text" name="last-name"/><br>
<jsp:setProperty name="client-bean" property="lastName" value="${requestScope.last-name}"/>
Client address<input type="text" name="address" size="100"/><br>
<jsp:setProperty name="client-bean" property="address" value="${requestScope.address}"/>
Client city<input type="text" name="city"/><br>
<jsp:setProperty name="client-bean" property="city" param="${requestScope.city}"/>
Client postal code<input type="text" name="postal-code"><br>
<jsp:setProperty name="client-bean" property="postalCode" value="${requestScope.postal-code}"/>
<input type="hidden" name="jsp-identifier" value="client-form">
<input type="submit" value="Submit">
</form>
</body>
</html>
请输入客户信息
客户名
客户姓氏
客户地址
客户城市
客户邮政编码
此代码中有什么错误?提前感谢。编辑:
看起来jsp:useBean是收集一组参数值以便于在页面上显示的老派方法。
在发布请求时,它不会添加属性
基于此,,
我认为jsp:useBean标记没有什么价值,
因为您可以使用el表达式访问在servlet中设置的属性
这无助于将已发布的参数值获取到servlet中的bean中
您可以在bean上编写一个方法,从请求(访问者模式)中提取参数值。
例如:
class bean
{
private String value;
public void loadFromHttpServletRequest(final HttpServletRequest request)
{
value = request.getParameter("value");
}
}
考虑使用spring mvc之类的软件包。编辑:
看起来jsp:useBean是收集一组参数值以便于在页面上显示的老派方法。
在发布请求时,它不会添加属性
基于此,,
我认为jsp:useBean标记没有什么价值,
因为您可以使用el表达式访问在servlet中设置的属性
这无助于将已发布的参数值获取到servlet中的bean中
您可以在bean上编写一个方法,从请求(访问者模式)中提取参数值。
例如:
class bean
{
private String value;
public void loadFromHttpServletRequest(final HttpServletRequest request)
{
value = request.getParameter("value");
}
}
考虑使用spring mvc之类的软件包。编辑:
看起来jsp:useBean是收集一组参数值以便于在页面上显示的老派方法。
在发布请求时,它不会添加属性
基于此,,
我认为jsp:useBean标记没有什么价值,
因为您可以使用el表达式访问在servlet中设置的属性
这无助于将已发布的参数值获取到servlet中的bean中
您可以在bean上编写一个方法,从请求(访问者模式)中提取参数值。
例如:
class bean
{
private String value;
public void loadFromHttpServletRequest(final HttpServletRequest request)
{
value = request.getParameter("value");
}
}
考虑使用spring mvc之类的软件包。编辑:
看起来jsp:useBean是收集一组参数值以便于在页面上显示的老派方法。
在发布请求时,它不会添加属性
基于此,,
我认为jsp:useBean标记没有什么价值,
因为您可以使用el表达式访问在servlet中设置的属性
这无助于将已发布的参数值获取到servlet中的bean中
您可以在bean上编写一个方法,从请求(访问者模式)中提取参数值。
例如:
class bean
{
private String value;
public void loadFromHttpServletRequest(final HttpServletRequest request)
{
value = request.getParameter("value");
}
}
考虑使用spring mvc之类的软件包。您应该首先考虑服务器上发生了什么,浏览器中发生了什么,以及通过HTTP传输了什么。表单提交使用多个阶段:
HttpServletRequest
调用适当的servlet方法,以及一个HttpServletResponse
,用于准备处理后将发送回浏览器的内容firstName
、lastName
、地址
、城市
等的参数
我可以理解这不是预期的答案,但HTTP协议是这样的
按评论编辑:
您可以将该属性放入会话中,然后servlet将使用与JSP相同的会话。但请再读一遍我上面写的内容,并在事情发生时思考:
- 在服务器上,当执行JSP时,您创建一个空的
客户机
bean,将其放入会话范围,并使用其值初始化表单字段。停止安装服务器部件
- 在客户机上,用户填写输入字段-服务器对此一无所知-