日期:2014-05-16  浏览次数:20391 次

JSP关于设置页面属性的理解
    想在代码中设置了一个属性,然后再页面中可以用${name}的形式获取。
    使用struts,首先尝试getRespond(),返回HttpServletRespond,发现没有setAttribute或者setParam之类的方法。但是使用getRequest,返回HttpServletRequest,有setAttribute,测试有效,例如
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:
${requestScope.username }

JSP中9个隐藏对象

TODO:struts value stack