现有两个表,主键表a,外键表b,通过连接查询得到的值在后台可以输出,
JSP却无法接收到值.请教各位大虾如何在JSP页面接收得到的值,下面是我的代码,有错之处还望指出,谢谢!!
-------------------------------------------------
dao的代码
-------------------------------------------------
public List findAll() {
return getHibernateTemplate().find("from a as a1,b as b1 where a.name=b.name");
}------------------------------------------------
接口和接口实现类
------------------------
public List findall();---接口sercice
-
public List findAll()---接口实现类
{
List ls=new ArrayList();
ls=dao.findall();
return ls;
}
---------------------------------
action类
-----------------------------
第一种写法:
List ls=sercice.findall();
request.setAttribute("lookall",ls);第二种写法:
List ls=sercice.findall();
Iterator ist= ls.iterator();
while (ist.hasNext()) {
Object[] o = (Object[]) ist.next();
a a1 = (a) o[0];
b b1 = (BookSelection) o[1];
System.out.println("aname: " + a.getAname());
System.out.println("bname: " + b.getBname());
}
request.setAttribute("lookall",st);
-----------------------------------
jsp部分代码
----------------------------------
<logic:iterate id="ad" name="lookall">
${ad.name}
</logic>
action类如果返回List那么在JSP页面就报错找不到ad这个bean
如果返回Iterator则是接收不到值,但是在后台可以正确输出....
如何才能正确的在JSP接收查询到的值,希望大虾们能够解决在下
困惑已久的难题,谢谢!!!
JSP却无法接收到值.请教各位大虾如何在JSP页面接收得到的值,下面是我的代码,有错之处还望指出,谢谢!!
-------------------------------------------------
dao的代码
-------------------------------------------------
public List findAll() {
return getHibernateTemplate().find("from a as a1,b as b1 where a.name=b.name");
}------------------------------------------------
接口和接口实现类
------------------------
public List findall();---接口sercice
-
public List findAll()---接口实现类
{
List ls=new ArrayList();
ls=dao.findall();
return ls;
}
---------------------------------
action类
-----------------------------
第一种写法:
List ls=sercice.findall();
request.setAttribute("lookall",ls);第二种写法:
List ls=sercice.findall();
Iterator ist= ls.iterator();
while (ist.hasNext()) {
Object[] o = (Object[]) ist.next();
a a1 = (a) o[0];
b b1 = (BookSelection) o[1];
System.out.println("aname: " + a.getAname());
System.out.println("bname: " + b.getBname());
}
request.setAttribute("lookall",st);
-----------------------------------
jsp部分代码
----------------------------------
<logic:iterate id="ad" name="lookall">
${ad.name}
</logic>
action类如果返回List那么在JSP页面就报错找不到ad这个bean
如果返回Iterator则是接收不到值,但是在后台可以正确输出....
如何才能正确的在JSP接收查询到的值,希望大虾们能够解决在下
困惑已久的难题,谢谢!!!
解决方案 »
- 从spring 容器获得bean的问题
- 各位大哥哥!我想用weblogic服务器!应该下哪个版本啊
- spring中service的A方法调用B方法,只B中一条数据不成功,A和B都进行事务回滚?怎么操作 谢谢 我是新手
- 请教关于httpSessionListener中的sessionDestroyed的方法
- xml文件中,不写明dtd,也能够验证吗?
- tomcat上开发的Web应用部署到Websphere上的报错!
- struts中如何配置资源文件
- 找不到javax.servlet.*这个包
- 关于weblogic7.0的一点小问题,在线等,请高手指点
- 请Struts高手来讨论
- 救急!!java获取webService返回值报异常(org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。)
- 请教一个struts2 redirectAction, action1转发到action2请问action2能获得action1里面的参数吗
只是一些包含 Object[] 的一个集合。
你可以先把 a 对象从上面哪个集合中分离出来在 放到一个集合中去 然后在页面才可以 通过 ad.name 来访问。
<logic:equal name="index" vlaue="0">
<INPUT type="checkbox" name="check" value="chk" checked>
</logic:equal>
<logic:notEqual name="index" vlaue="0">
<INPUT type="checkbox" name="check" value="chk">
</logic:notEqual >
<bean:write name="list" property="name" />
<bean:write name="list" property="address" >
</logic:iterate>关于logic
Struts 的Logic标签可以根据特定的逻辑条件来判断网页的内容,或者循环遍历集合元素,它和HTML,Bean标签是Struts应用种最常用的三个标签.它的功能主要是比较运算,进行字符串的匹配,判断指定的内容是否存在,循环遍历集合,进行请求转发和重定向,下面具体的说明标签的用途:<logic:equal>变量等于指定的常量<logic:notEqual>变量不等于指定的常量<logic:lessThan>变量小于指定的常量<logic:lessEqual>变量小于或者等于指定的常量<logic:geraterThan>变量大于指定的常量<logic:geraterEqual>变量大于或等于指定的常量以上这些标签都很类似, 有共同的属性,cookie属性指定cookie属性的值,然后用value设置的常量进行比较.header属性设置header请求头的值,也是通过 value属性设置的值进行比较.parameter属性设置一个请求参数,然后也是通过value属性设置的值进行比较.name属性设置一个变量,然后用value比较.如果同时设置了name和property属性,此时name属性指定已经存在的JavaBean,property属性指定 Bean的属性.这个标签感觉十分简单,用法也十分单一,下面研究一下进行字符串匹配的标签和判断特定内容的标签.<logic:match> 标签是判断变量种是否包含常量字符串的,<logic:netMatch>也判断是否不包含字符串的,用name属性定义一个字符串变量,然后用value属性的值去判断变量是否包含这个字符串或者是不包含这个字符串,判断成功返回true.<logic:empty>和<logic:netEmpty>标签可以判断指定的变量是否为空的字符串,可以通过name属性来判断一个字符串是否为null.例如是请求参数的字符串.<logic:present> 和<logic:notPresent>标签可以判断指定的对象是否为空,这个标签的属性很多.cookie属性判断Cookie是否存在.Header属性判断HTPP请求头是否存在.role属性是判断当前的权限的用户是否是指定的安全角色.user属性是判断当前通过权限验证的用户是否拥有指定的用户名.parameter属性是判断请求的参数是否存在.name属性是用来判断指定的Bean是否存在.同时设置name和 property属性就是判断Bean种的具体属性是否存在了.<logic:messagesPresent> 和<logic:messagesNotPresent>标签是用来判断是否在request范围内的特定的ActionMessages或者是子类ActionErrors对象.name属性是用来检索ActionMessages对象的key,property指定从 ActionMessages集合对象中检索某条消息key也就是具体的ActionMessage对象.进行循环遍历Logic标签是Logic标签库中最复杂的标签,也是用途最广泛的标签,它能够在一个循环中遍历数组,Collection,Enumeration,Irerator或者Map中的所有元素1)遍历集合的标签<logic:iterate> 的name属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后存放在page范围内,并以id属性指定这个字符串来命名这个元素,最好是在里面嵌套一个<bean:write>标签,把刚刚遍历的第一个id指定的字符串输出,然后在循环在输出.length属性需要遍历的元素的数目,如果没有设置length属性,就遍历集合中的所有元素.offset属性指定开始遍历的其实位置,默认值是0.indexId属性定义一个代表当前被遍历元素的系列号,这个变量存放在page范围内,可以被<bean:write>标签访问输出输出的是int的数字.例如 1.2.3.4等.可以用户输出输出的元素的系列号.2)遍历Map 是通过<logic:iterate>标签,name属性指定一个HashMap,存放在request范围,然后赋给id指定的变量,indexId可以指定索引编号,然后通过<bean:write>标签输出出来.在HashMap的每一个元素都是一个集合对象,所以可以嵌套使用.就是说<logic:inerate>这个标签既可以把Collection的元素弄出来负给一个变量也可以弄Map的.所以说它的功能强大.还有一个collection属性可以设置一个表达式,这个表达式返回的结果可以作为,<logic:inerate>标签输出的集合或者Map.这个属性类似name属性.最后研究一下进行请求转发和重定向的Logic 标签,<logic:forward>标签用于请求转发,它的name属性指定转发的目标,与Struts配置文件中的<global-forwards>元素和的子元素<forward>元素匹配.简单的说就是<logic:forward>标签的name属性定义的值,要去找到<golbal-forwards>子元素<forward>元素的匹配的name属性,然后通过path指定的路径进行转发.重定向用<logic:redierct>标签它的forward,href和page属性指定重定向的目标,这几个属性和<html:link>标签的属性用法十分相似.
额~~我清楚这样可以在页面访问到值,可惜不会,在下是新手~~而且我用select new hiber.A(a1.name,b1.name) from A as a1,B as b1 where a.name=b.name
报错为找不到hiber.A这个类
但是用
select new B(b1.name)from A as a1,B as b1 where a.name=b.name
不但可以找到B这个类,还可以在页面正确输出值,但却不能在B()里面添加A的字段,不然报同样错误
我想问下,为什么会出现这种情况呢,我用的是SSH框架写的,hibernate的代码都是自动生成
不需要任何改动,只需改hql语句的,为什么有的第二个select new 可以执行,第一个却不行~~
求大虾指教~~
${ad.name}
</logic>
1、
</logic:iterate>
2、
看看你的action返回的路径。
<bean:write name="list" property="a.aname" />
<bean:write name="list" property="BookSelection.bname" >
</logic:iterate>
JSTL
你好,我想请教一下,这里的
name="lookall"
property="a.aname"
property="BookSelection.bname"
它们分别来自哪里?都带表什么意思啊?
麻烦介绍一下。谢谢啊