JSP 代码求解
<c:forEach var="release" items="${pageVector}">
<tr>
<td align="center">
<span style="cursor: hand" onclick="getSourceByReleaseId(${release.zoneId });">choose</span>
</td>
<td>
${release.operator }
</td>
<td>
${release.sourceId }
</td>
求解释 尤其是 ${}
补充:我从数据库中获得数据在页面上分页显示
为什么我现在数据库中加了一列,相应的代码也改了,这里也多加了一个
<td>
${release.xxxxx }
</td>
但是测试时页面中只显示了一行数据,去掉
<td>
${release.xxxxxxx }
</td> 就没事了 具体出错在哪,找不到啊---
追问:就是我做的一个网站 连不上数据库 不知道是什么原因。
oracle 数据库连接,看看你写的连接方式对不对,然后就是端口对不对,还有数据库开启没有,还有,我看你连接的时候,没见你设置连接时数据库要的账号和密码啊。怎么可能连上?
我从数据库中获得数据在页面上分页显示
为什么我现在数据库中加了一列,相应的代码也改了,这里也多加了一个
<td>
${release.xxxxx }
</td>
但是测试时页面中只显示了一行数据,去掉
<td>
${release.xxxxxxx }
</td> 就没事了 具体出错在哪,找不到啊---
答案:${}是jsp中的el表达式,其效果等价于:
${obj.property} ---> <%= scope.getAttribute("obj").getProperty() %>
这里的scope依次是pageContext,request,session,application,由jsp引擎自动依次搜索。
所以,
${release.operator}等价于:<%= request.getAttribute("release").getOpertor() %>
当然,这里假定你是把对象存放在request范围内,而且略过了对象类型转换。
那么,当你使用:
${release.xxxxxx}时,实际上是执行了<%= request.getAttribute("release").getXxxxxx() %>
你没有修改release所对应的类,没有为它添加getXxxxxx()方法(注意,第一个X要大写哦),当然会出错了。
其他:把数据库操作的代码写到JSP里面,想问下,你想调用这些代码达到连接数据库目的的时候,怎么调用?
jsp就是一个servlet,它只是在用户访问的时候,运行一次,然后向用户输出html代码,以达到给用户呈现出一个页面的目的。
明确什么是什么,干什么用的,再来写这个代码吧。
记住1点:jsp文件中的代码,看起来就好像完全是HTML,才算合格。你这样的,我不觉得像jsp,到像是纯java文件。 不知道你的 pool 在哪里来的,这个对象一直没有看到在哪里创建 首先你层次都不清楚。上半部分几行,你是获取页面传递过来的值。中间又是连接oracle,下边又是逻辑判断...你应该分清层次。连接数据库到数据访问层,业务逻辑应该写到业务层。页面数据获取应该属于表现层。首先配置数据库,你要有数据源,url,用户名,密码等。之后就是创建连接了。业务逻辑层你要实现就是对登录是否成功,是否重复登录等的判断。那页面也就是实现方法调用和数据显示之类。你要分清层次的呀。当然谁也没说不能写一块去,你这是写到一块了,但你代码写的诟病比较多,1,获取当前数据,你不保存在session里,页面跳转了,你数据哪里有?2,连接数据库,没有用户名和密码,你怎么登录?。 你把连接数据库的代码写在java文件中后,把登录后的信息存入session,然后在jsp中取出session,这样很清晰,你重写吧。 <c:forEach var="release" items="${pageVector}">这个是EL表达式中的循环。
items="${pageVector}" 这个是集合的名字 var="release" 这个表示的是当前对象。
和for循环一样的。
onclick="getSourceByReleaseId(${release.zoneId });" 这是js代码 。 单击时调用这个函数给它传了个参数(release对象的zoneId属性 )。
至于<td>
${release.operator }
</td>
<td>
${release.sourceId }
</td>就是将这个对象的属性值输出在这个单元格中。
${}这是语法。 <c:forEach var="release" items="${pageVector}"> 是一个遍历 <c:forEach var="" items="" varStatus="">用于遍历集合。items 属性:指定要遍历的集合。 var 属性: 指定一个绑订名,jsp 引擎会从集合当中取一个对象,绑订到pageContext对象上。 varStatus 属性: 指定一个绑定名,对应的绑订值是一个java 对象,封装了遍历时的一些信息,包括当前遍历的对象的下标(index)以及是第几次(count)遍历。
${}是 el标签的语法 如${release.zoneId } jsp 引擎会依次从pageContext、request、session、application 查找绑订名为"release" 的对象,如果找到了,就不再向下查找,否则,继续向下查找。找到后,调用该对象的getZoneld()方法 ,并输出其值;找不到,则输出" "(空)。
上一个:我有个JSP文件打开都是代码。谁能帮我打开吗?
下一个:jsp 三个以上的单选按钮把选中的值传到数据库中,两页中的代码该怎么写?