`
genius0182
  • 浏览: 37646 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

JSTL表达式的问题?

阅读更多
我在做例子时总是说这行有错误<c:out value="${error}"></c:out>
错误如下:
org.apache.jasper.JasperException: /WEB-INF/fail.jsp(29,2) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:357)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:141)
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:940)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:695)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Validator.validate(Validator.java:1474)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:214)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:422)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:507)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:111)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:965)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:744)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
jsp页面代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>ok</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <c:out value="${error}"></c:out><br>
  </body>
</html>
分享到:
评论
10 楼 genius0182 2007-04-11  
问题解决了,我把JSTL1.1的包导进去就好用了。应该是以前的c标签太老的原因。谢谢大家的参与。
9 楼 hgq0011 2007-04-10  
“attribute value does not accept any expressions “不能接收表达示。那你就研究一下jstl<c:out>到底怎么写撒。
8 楼 genius0182 2007-04-09  
你说的初始化工作是不是配置文件里的东西呀?
配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean id="FormController" class="web.FormController">
        <property name="sessionForm"><value>true</value></property>
        <property name="commandName"><value>user</value></property>
        <property name="commandClass"><value>pojo.Tusers</value></property>
        <property name="formView"><value>login</value></property>
        <property name="fail_view">  
			<value>fail</value> 
		</property> 
		<property name="success_view"> 
        	<value>ok</value>
		</property> 
        <property name="userservice">
			<ref bean="userService" />
		</property>
    </bean>
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
        <property name="mappings">
            <props>
                <prop key="/login.htm">FormController</prop>
            </props>
        </property>
    </bean>
    <bean id="viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
	<property name ="prefix"><value>/WEB-INF/</value></property>
	<property name ="suffix"><value>.jsp</value></property>
</bean>
</beans>

请看看有什么地方不正确吗?
7 楼 rainlife 2007-04-09  
哦,你用的是Spring啊,使用JSTL的话,要让Spring支持JSTL才行的,必须使用一个特殊的JstView类,在执行JSTL前完成一些初始化的工作。
6 楼 genius0182 2007-04-09  
这是我的处理器。
/**
 * 
 */
package web;

import java.util.HashMap;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;

import pojo.Tusers;
import service.UserService;

/**
 * @author Administrator
 *
 */
public class FormController extends SimpleFormController {
	
	private UserService userservice;
	private String fail_view;
	private String success_view;
	protected ModelAndView onSubmit(Object command) throws Exception{
		Tusers tt = (Tusers)command;
		System.out.println("userName: "+tt.getUserName());
		System.out.println("password: "+tt.getPassword());
		HashMap hm = new HashMap();
		try
		{
			userservice.checkLogin(tt);
			
			hm.put("userName", tt.getUserName());
		}
		catch(RuntimeException e)
		{
			hm.put("error", e.getMessage());
			System.out.println(e);
//			return new ModelAndView(new RedirectView(this.getFail_view()),hm);
			return new ModelAndView(this.getFail_view(),hm);
		}
		
		return new ModelAndView(this.getSuccess_view(),hm);
	}
	/**
	 * @return the userservice
	 */
	public UserService getUserservice() {
		return userservice;
	}
	/**
	 * @param userservice the userservice to set
	 */
	public void setUserservice(UserService userservice) {
		this.userservice = userservice;
	}
	/**
	 * @return the fail_view
	 */
	public String getFail_view() {
		return fail_view;
	}
	/**
	 * @param fail_view the fail_view to set
	 */
	public void setFail_view(String fail_view) {
		this.fail_view = fail_view;
	}
	/**
	 * @return the success_view
	 */
	public String getSuccess_view() {
		return success_view;
	}
	/**
	 * @param success_view the success_view to set
	 */
	public void setSuccess_view(String success_view) {
		this.success_view = success_view;
	}

}
5 楼 genius0182 2007-04-09  
包我导进去了。 我的error在Contrller中设了。我用
String error = (String)request.getAttribute("error");
<%=error%>

这么用就好使。一换成表达式的形式就出上面的错误。
4 楼 rainlife 2007-04-09  
引用
# <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %> 
# <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %> 

这个用法是对的,在容器启动的时候,会自动地将JSTL支持加载进来的,而并不用在web.xml中做什么配置。不知道你的包有没有导入正确,另外,你是不是试一下用<c:set />将error设置一下?
3 楼 genius0182 2007-04-09  
我加了。
web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<servlet>
   <servlet-name>web</servlet-name>  
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>2</load-on-startup>
   </servlet>


 <servlet-mapping>
 <servlet-name>web</servlet-name>
 <url-pattern>*.htm</url-pattern>
 </servlet-mapping>

 <servlet>
 <servlet-name>context</servlet-name>
 <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
 </servlet>


 <context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/applicationContext.xml</param-value>
 </context-param>
<welcome-file-list>
    <welcome-file>
      login.jsp
    </welcome-file>
  </welcome-file-list>	
 <taglib>
    <taglib-uri>/spring</taglib-uri>
    <taglib-location>/WEB-INF/spring.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>/WEB-INF/c.tld</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
  
  
  <taglib>
    <taglib-uri>/WEB-INF/fmt.tld</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
  </taglib>
</web-app>
2 楼 jamesby 2007-04-09  
http://jamesby.iteye.com/admin/show/53055
1 楼 lsy 2007-04-09  
web.xml
加上下面的代码没有啊?
		<taglib>
			<taglib-uri>/WEB-INF/core.tld</taglib-uri>
			<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
		</taglib>

相关推荐

    jstl表达式所需依赖jar包

    "jstl表达式所需依赖jar包"是指在项目中为了使用JSTL功能,必须引入的特定jar文件。这些jar文件包含了JSTL库的实现,使得开发者能够利用JSTL标签进行更高效、更灵活的编程。 JSTL的核心在于提供了一种与脚本语言...

    JSTL表达式详解(JAVA)

    其中,JSTL表达式是JSTL库中用于处理字符串和数组等数据的重要工具。在JSTL中,`fn`函数库提供了许多方便的字符串处理方法,让我们逐一详细讲解这些方法的使用和功能。 1. `fn:contains(string, substring)`:这个...

    jstl表达式的总结

    本文将对JSTL表达式进行详细的总结。 ### 1. JSTL核心库(core) JSTL的核心库主要包含一系列与控制流程相关的标签,如`&lt;c:set&gt;`、`&lt;c:if&gt;`、`&lt;c:choose&gt;`、`&lt;c:when&gt;`、`&lt;c:otherwise&gt;`、`&lt;c:forEach&gt;`和`...

    JSTL表达式描述

    JSTL表达式描述,通过该文档你可以很好的了解JSTL的运用。

    JSTL表达式

    ### JSTL表达式概述 JSTL(JavaServer Pages Standard Tag Library)是一种标准标签库,主要用于简化JSP页面的开发工作。通过一系列预定义的动作,开发者能够在无需编写自定义脚本的情况下完成复杂的任务,从而提高...

    EL&JSTL表达式.rar_JSTL_el

    标题"EL&JSTL表达式.rar_JSTL_el"表明了这份压缩包资源主要关注的是两个关键概念:Expression Language(EL)和JavaServer Pages Standard Tag Library(JSTL)。EL是一种在JavaServer Pages(JSP)中用于简化数据...

    JSTL 表达式语言

    JSTL还引入了一种简化版的表达式语言(Expression Language,EL),它允许在不使用完整编程语言的情况下,为JSTL操作指定动态属性值。EL表达式通常在`${}`中编写,简化了页面中的数据绑定和逻辑表达。 总的来说,...

    JSTL,EL表达式语法简介

    JSTL的核心是与Java Expression Language(EL)紧密集成,EL则是一个用于在JSP页面中获取和操作数据的简洁表达式语言。 **EL(Expression Language)**是Java Servlet 2.4及更高版本中引入的一种轻量级脚本语言。它...

    JSTL 表达式 入门 访问SQL和XML内容

    JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能...最后,您将了解 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。

    为java_web项目添加spring_MVC框架(JSTL表达式)

    标题中的“为java_web项目添加spring_MVC框架(JSTL表达式)”指的是在Java Web开发中集成Spring MVC框架,并利用JSTL(JavaServer Pages Standard Tag Library)进行页面表达式的处理。Spring MVC是Spring框架的一个...

    JSP中的EL和JSTL表达式

    **JSP中的EL和JSTL表达式** 在JavaServer Pages (JSP) 开发中,EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)是两个非常重要的工具,它们极大地简化了页面逻辑,提高了代码的可读性和...

    EL、JSTL表达式

    ### EL与JSTL表达式详解 #### 一、EL表达式 **EL**(Expression Language)是一种简单且强大的表达式语言,它允许开发者在JSP页面中以非编程方式访问和操纵数据。EL的主要用途是在JSP文件中访问JavaBean属性、调用...

    【JSTL表达式依赖包】jakarta-taglibs-standard-1.1.2

    JavaServer Pages Standard Tag Library(JSTL)是Java Web开发中的一个重要组件,它提供了一组预定义的标签,用于简化...在实际应用中,还需要注意与Spring MVC、JSF等框架的集成,以及JSTL版本与其他库的兼容性问题。

    EL、JSTL表达式案例精讲

    ### EL(Expression Language)与JSTL(JavaServer Pages Standard Tag Library)表达式案例精讲 #### EL在JSP中的应用 EL,即Expression Language,是JSP技术中用于简化数据访问的一种强大工具。它允许开发者在...

    struts jstl el表达式示例代码

    struts jstl el表达式示例代码 struts jstl el 表达式 源码

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    JSTL以及EL表达式所需jar包

    为了增强JSP页面的功能性和简化代码,我们通常会使用两种技术:EL(Expression Language)表达式和JSTL(JavaServer Pages Standard Tag Library)标签库。这两个工具都是Java EE生态系统的一部分,极大地提高了开发...

Global site tag (gtag.js) - Google Analytics