想在代码中设置一个属性,然后在页面中可以用${name}的形式获取。
使用struts,首先尝试getRespond(),返回HttpServletRespond,发现没有setAttribute或者setParam之类的方法。但是使用getRequest,返回HttpServletRequest,有setAttribute,测试有效,例如:
Java代码
- this.getRequest.setAttribute("name", "lingceng");
在页面中使用{name},便能等到lingceng。
疑问:
按照字面理解,request是请求,respond是回复,向页面设置参数应该是在respond上操作,为什么是在request呢?
解答:
解释不难,要从一些基本html的概念出发。request可以看做是浏览器上的一条url,可以接参数,如果是get方式,就能显示地看到如?name=lingceng的样子。而respond只是一系列字符流,没有设置参数一说。
至于为什么request上的参数会到页面上呈现,就在于EL表达式可以访问requestScope的数据
JSP_EL的回顾
简化方式使用了EL,依次从PageContext,HttpServletRequest,HttpSession,servletContext中查找varName的属性对应值。若没有则返回空字符串,若具有同名属性,取得的是靠前对象中的属性值。也可以指定scope;
Jsp代码
- ${requestScope.username }
该贴被jxxs_12编辑于2013-1-15 14:17:41