小弟最近做一个小项目要求页面中不能使用JAVA小脚本不能出现<%%>
所以内容都通过Servlet来读使用JSTL标签在页面中显示
问题:
1.主页的内容有点类似京东主页左侧的商品类别,怎么在打开主页的时候Servlet已经运行完成
在主页中使用JSTl标签来获取Session或都其它里面的值输出
2.点击连接显示商品详情时,连接地址使用Servlet地址?再转发或者重定向吗?
如果使用页面地址url连接怎么在页面跳转时,调用Servlet的值
这个我知道,关键是,我打开的第一个页面是主页,而主页中的内容要从servlet中取,这时servlet还没有被访问页面中这里取不出值的
主页中的类别列表是servlet从数据库中读出来的,而先打开的是主页,就没办法取值
现在的问题是怎么样让servlet在打开主页前已经把值放到session或者application中去,打开主页时就可以直接取到值了
@森林森: 请问,如果不用 JSTL,而用 JS,你怎么实现?
@Launcher: 不太会,我刚接触这些东东,编程,都了解一点但都不熟,请大神指点
@森林森: 那完了,我没法给你最佳的建议。我能想到的方案是,你需要在你的主页加载的时候就访问 servlet 并得到类别列表存入 session。
@Launcher: 对,就是这样的,可就是没法实现,郁闷了,2天也没搞出来,还是要谢谢您
@森林森: 我劝你还是先学学 js,然后理解一下 jsp 的执行模型,你在浏览器中浏览你的页面,然后查看一下源文件,你会发现你的那些 JSTL 标记都没了,全部转换成了 HTML 和 JS。
@Launcher: 好的,谢谢,我也发现js方面,我是小白了,正在看
@森林森:
2. <c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中。下面的例子中假设已经有 Category.java 这个类文件。
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page contentType="text/html; charset=utf-8" %> <jsp:useBean id="category" class="lihui.Category"></jsp:useBean> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JSTL测试</title> </head> <body> <c:set value="张三" var="name1" scope="session"></c:set> <c:set var="name2" scope="session">李四</c:set> <c:set value="赵五" target="${category}" property="name"></c:set> <c:set target="${category}" property="age">19</c:set> <li>从session中得到的值:${sessionScope.name1}</li> <li>从session中得到的值:${sessionScope.name2}</li> <li>从Bean中获取对象category的name值:<c:out value="${category.name}"></c:out></li> <li>从Bean中获取对象category的age值:<c:out value="${category.age}"></c:out></li> </body> </html>