今天在运行书里的JSTL标签代码的时候出错,总结一下:

问题1.The JSP specification requires that an attribute name is preceded by whitespace

解决:<c:forEach var="book" items="${requestScope.books}"varStatus="status">出错

改为:<c:forEach var="book" items="${requestScope.books}" varStatus="status">

原因:varStatus="status"前加空格

------------------------------------------------------------------

问题2.Property 'isbn' not found on type java.lang.String

解决:<c:forEach var="book" items=" ${requestScope.books}" varStatus="status">出错

改为:<c:forEach var="book" items="${requestScope.books}" varStatus="status">

原因:${requestScope.books}前去掉空格

------------------------------------------------------------------ 

问题3.程序能运行了,jsp能访问,但是EL表达式读取不到想要的信息   

解决:没有在.xml配置文件添加servlet的<url-pattern>信息,无法调用servlet向jsp传对象。

在.xml文件中添加:

  1. <servlet>
  2. <servlet-name>BooksServlet</servlet-name>
  3. <servlet-class>com.controller.BooksServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>BooksServlet</servlet-name>
  7. <url-pattern>/BooksServlet</url-pattern>
  8. </servlet-mapping>

------------------------------------------------------------------ 

jstl标签练习代码:

1.BooksServlet.java

  1. package com.controller;
  2. import java.io.IOException;
  3. import javax.servlet.RequestDispatcher;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import java.util.List;
  10. import java.util.ArrayList;
  11. import com.model.Book;
  12. //@WebServlet("/BooksServlet")
  13. public class BooksServlet extends HttpServlet {
  14. @Override
  15. public void doGet(HttpServletRequest request, HttpServletResponse response)
  16. throws ServletException, IOException {
  17. List<Book> books = new ArrayList<Book>();
  18. Book book1 = new Book("978-7-302-23059-5","Java语言程序设计",45.00);
  19. Book book2 = new Book("978-7-302-21540-0","Java Web编程技术",39.00);
  20. Book book3 = new Book("978-7-302-24130-0","C #入门经典",99.80);
  21. books.add(book1);
  22. books.add(book2);
  23. books.add(book3);
  24. request.setAttribute("books", books);
  25. RequestDispatcher rd = request.getRequestDispatcher("/books.jsp");
  26. rd.forward(request, response);
  27. }
  28. }

2.Book.java(javaBean类)

  1. package com.model;
  2.  
  3. public class Book {
  4. private String isbn;
  5. private String title;
  6. private double price;
  7. public Book(String isbn, String title, double price) {
  8. super();
  9. this.isbn = isbn;
  10. this.title = title;
  11. this.price = price;
  12. }
  13. public String getIsbn() {
  14. return isbn;
  15. }
  16. public void setIsbn(String isbn) {
  17. this.isbn = isbn;
  18. }
  19. public String getTitle() {
  20. return title;
  21. }
  22. public void setTitle(String title) {
  23. this.title = title;
  24. }
  25. public double getPrice() {
  26. return price;
  27. }
  28. public void setPrice(double price) {
  29. this.price = price;
  30. }
  31.  
  32. }

3.books.jsp

  1. package com.model;
  2.  
  3. public class Book {
  4. private String isbn;
  5. private String title;
  6. private double price;
  7. public Book(String isbn, String title, double price) {
  8. super();
  9. this.isbn = isbn;
  10. this.title = title;
  11. this.price = price;
  12. }
  13. public String getIsbn() {
  14. return isbn;
  15. }
  16. public void setIsbn(String isbn) {
  17. this.isbn = isbn;
  18. }
  19. public String getTitle() {
  20. return title;
  21. }
  22. public void setTitle(String title) {
  23. this.title = title;
  24. }
  25. public double getPrice() {
  26. return price;
  27. }
  28. public void setPrice(double price) {
  29. this.price = price;
  30. }
  31.  
  32. }

4.配置文件.xm

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  3. <display-name>Ex_JSTL_tag</display-name>
  4. <servlet>
  5. <servlet-name>BooksServlet</servlet-name>
  6. <servlet-class>com.controller.BooksServlet</servlet-class>
  7. </servlet>
  8. <servlet-mapping>
  9. <servlet-name>BooksServlet</servlet-name>
  10. <url-pattern>/BooksServlet</url-pattern>
  11. </servlet-mapping>
  12. <welcome-file-list>
  13. <welcome-file>index.html</welcome-file>
  14. <welcome-file>index.htm</welcome-file>
  15. <welcome-file>books.jsp</welcome-file>
  16. <welcome-file>default.htm</welcome-file>
  17. <welcome-file>default.jsp</welcome-file>
  18. </welcome-file-list>
  19. </web-app>

5.运行时注意加入   http://localhost/Ex_JSTL_tag/BooksServlet

只有在url中加入/BooksServlet才能调用到servlet想jsp传参数

截图:

原创不易,转载请声明原文地址。

JSTL标签出错:<c:forEach var="book" items="${requestScope.books}" varStatus="status">的更多相关文章

  1. JSTL标签之c:foreach,c:if标签小结

    <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...

  2. <c:forEach varStatus="status">中 varStatus的作用

    varStatus是<c:forEach>jstl循环标签的一个属性,varStatus属性. varStatus=“status”事实上定义了一个status名的对象作为varStatu ...

  3. 【转】<c:forEach varStatus="status">中 varStatus的属性简介 及应用

    转载原因:在做页面的时候,需要在页面中判断循环了第几次和一共循环了多少次,在网上搜集的时候,看到这篇帖子,觉得太全面了,于是转载了.... varStatus是<c:forEach>jst ...

  4. Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  5. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  6. 2015第37周一struts2 jstl 标签

    1.在jstl中使用struts2  <c:forEach var="ee" items="${requestScope.serviceList}" &g ...

  7. JavaWeb基础—EL表达式与JSTL标签库

    EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...

  8. jstl 标签 的应用

    参考文档:http://www.yiibai.com/jsp/jstl_core_choose_tag.html 1.jstl中foreach序号 <c:forEach items=" ...

  9. jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar

    spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...

随机推荐

  1. MACD 基本用法

    基本用法 1. MACD 金叉:DIFF 由下向上突破 DEA,为买入信号. 2. MACD 死叉:DIFF 由上向下突破 DEA,为卖出信号. 3. MACD 绿转红:MACD 值由负变正,市场由空 ...

  2. Codeforces Round #332 (Div. 2)

    水 A - Patrick and Shopping #include <bits/stdc++.h> using namespace std; int main(void) { int ...

  3. python 代码片段19

    #coding=utf-8 # 函数 def foo(x): print x foo(123) # import httplib def check_web_server(host,port,path ...

  4. datanode启动不了

    报如下异常:*org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.protocol.DisallowedDatano ...

  5. oracle 函数大全及运算符

    http://blog.csdn.net/huangwuyi/article/details/7407820 一.函数 1.取整  mod(2,10)=2 2.取整 trunc(12/10)=1 3. ...

  6. A Simple C++ Template Class that Matches a String to a Wildcard Pattern

    A recently implemented enhanced wildcard string matcher, features of which including, Supporting wil ...

  7. Zepto Code Rush 2014 A. Feed with Candy

    此题用贪心求解, 首先将caramel drop类别的糖果按照高度从小到大排序,如果高度相同,按照重量从小到大排序 将fruit drop类别的糖果按照高度从小到大排序,如果高度相同,按照重量从小到大 ...

  8. BZOJ3625: [Codeforces Round #250]小朋友和二叉树

    Description 我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树.考虑一个含有n个互异正整数的序列c[1],c[2],...,c[n].如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合{ ...

  9. iOS模拟器多个虚拟机怎么处理

    1:关闭Xcode和模拟器 2:$sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService 等待输入密码 3:$rm -f ~/Libr ...

  10. Node.js 手册查询-1-核心模块方法

    Node.js 学习手册 标签(空格分隔): node.js 模块 核心模块 核心模块是被编译成二进制代码,引用的时候只需require表示符即可 os 系统基本信息 os模块可提供操作系统的一些基本 ...