如果我有一个包含以下代码的bean:
private String method;
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
是否有必要:
request.setAttribute("method", method );
对于我希望从JSP中可见的每个变量?
答案 0 :(得分:2)
如果请求中未设置method
属性,则jsp中评估的${method}
表达式将为null。如果您需要某个值,则必须将其设置为该值。
在你的servlert做post方法;
public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException
{
String formParameter = req.getParameter("someParameterName");
//Your logic dependen on form parameter
FormObject fo = new FormObject();
fo.setMethod("new value");
req.setAttribute("formObject", fo);
req.getRequestDispatcher("/WEB-INF/yourJspPage.jsp").forward(req, res);
}
你是java对象:
public class FormObject{
String method;
public String getMethod(){
return method;
}
public void setMethod(String method){
return this.method = method;
}
}
你的yourJspPage.jsp中的:
<div>${fo.method}</div>
P.S。我没有试过这个例子,但这个想法应该是清楚的。你可以搜索jsp + servlet教程来了解你在做什么。有类似的内容:enter link description here
session
类似于请求添加到此对象的属性持续更长时间(不同范围)。但我认为在为每个步骤寻求帮助之前,您应该阅读更多文档和教程。
答案 1 :(得分:1)
对于我希望从JSP中看到的每个变量?
没有。您只需将bean的实例设置为请求属性即可。使用JSP页面中提供的那个,您可以使用EL - ${beanInstance.method}
。
答案 2 :(得分:0)
如果请求中未设置method
属性,则jsp中评估的${method}
表达式将为null。如果您需要某个值,则必须将其设置为该值。
3种方式:
使用会话
request.getSession().setAttribute("method", this);
和<c:out value="${mycontroller.method}"/>
设置单一属性
request.setAttribute("method", method);
和<c:out value="${method}"/>
通过将对象分配给bean来同时在bean中设置所有属性
request.setAttribute("mycontroller", this);
和<c:out value="${mycontroller.method}"/>