希望我能描述清楚哈!代码不是我写的,我问那个写的人,为啥这样,她说不知道!我郁闷了,上来问问同胞们。实在是对J2EE不太懂。先谢过。我有一个class,大概是这个样子:Class ContentClass
{
private string fId;
private string fName;
public string getId() {return fId;}
public string getName() {return fName;}
public ContentClass(string name) {
fId = name + "id";
fName = name;
}
}然后,我初始化了一个List,每个元素都是ContentClass的一个实例。也就是一串ContentClass啦。
然后把这个List,放到Session里面去了!在jsp页面,引用的时候,用了一个循环,基本就是从sessionScope里面取出每个元素来,用condContent表示。然后打印出每个condContent的fName值。以上都看得明白。不明白的地方,在于打印。是这么用的:${condContent.name} 注意!注意!class里面明明是fName,怎么到了这里就成了name了呢?引用Id的话,用的是${condContent.id}。为什么这么用呢?我写成${condContent.fName}反而步行了!现在的问题是,我要新加一个string的属性,然后在jsp页面获得Session里面这个属性的值。要怎么做呢?这个从fName到name的转换,是怎么回事啊?是J2EE固有的属性?还是写在哪个配置文件里了呢?老大们快来救命!
{
private string fId;
private string fName;
public string getId() {return fId;}
public string getName() {return fName;}
public ContentClass(string name) {
fId = name + "id";
fName = name;
}
}然后,我初始化了一个List,每个元素都是ContentClass的一个实例。也就是一串ContentClass啦。
然后把这个List,放到Session里面去了!在jsp页面,引用的时候,用了一个循环,基本就是从sessionScope里面取出每个元素来,用condContent表示。然后打印出每个condContent的fName值。以上都看得明白。不明白的地方,在于打印。是这么用的:${condContent.name} 注意!注意!class里面明明是fName,怎么到了这里就成了name了呢?引用Id的话,用的是${condContent.id}。为什么这么用呢?我写成${condContent.fName}反而步行了!现在的问题是,我要新加一个string的属性,然后在jsp页面获得Session里面这个属性的值。要怎么做呢?这个从fName到name的转换,是怎么回事啊?是J2EE固有的属性?还是写在哪个配置文件里了呢?老大们快来救命!
解决方案 »
- jre jvm clr 之间关系是什么
- avascript问题
- orm 中 关联的对象 如何绑定到界面控件
- 上海某软件有限公司招聘WEB,JAVA工程师(紧急)
- struts能否将普通form的信息通过request提交到Action?
- 预编译的错误
- 错误如下:[SQLServer JDBC Driver]End of stream was detected on a read.100分相送
- 请问如何把JBuilder9 和tomcat 3.3 整合阿
- 请教如何在swing的UI里显示一个实时系统时钟?
- Java反射机制既然可以拿到class对象,知道其中方法为啥不直接使用对象调用方法?
- hibernat调用存储过程
- 二进制数据问题?
所有EL都是以 ${ 为起始、以} 为结尾的。
上述EL范例的意思是:从Session取得用户的性别。如果使用之前JSP代码的写法如下:
<%
User user = (User)session.getAttribute(”user”);
String sex = user.getSex( );
%>
两者相比较之下,可以发现EL的语法比传统JSP代码更为方便、简洁。
EL提供 . 和 [ ] 两种运算符来存取数据,[ ]可以访问集合或者是数组的元素、Bean的属性。
下列两者所代表的意思是一样的,但是需要保证要取得对象的那个的属性有相应的setXxx()和getXxx()方法才行。
el语言${condContent.name}是掉name的get方法
从规范来讲ContentClass的getName方法 应该改为getFName
el语言写${condContent.fName}el语言取值范围问题:先从页面取,没有的话在request,没有的话在session
啊,哈哈,下午太搞笑了!我竟然跑去问人家:为啥写name不写fname啊?那个人听了应该很无语吧?她只好说不知道。我们另找个时间再研究这个问题吧。
LZ这样写很显然不是很符合规范
anyway,因为写了getname()所以jsp里面还是应该用condContent.name才对。
她原来就这么写的,咱就继续这个风格续吧。哈哈哈
不论你是在action还是jsp页面中只要是你有往session或者request中存入对象或单个属性,都可以在页面以${}方式获取
如果你存入的是对象vo,那么你就只能去取vo中定义了的属性,好比你在action中取值是:vo.getName();
那么你页面上就是${vo.name}
如果只是属性,随便都可以,自己定义,例如:
不论在页面还是action中,request.setAttribute("name",vo.getName());
页面上直接${name}就好了