我在哪里放置jstl.jar,standard.jar以便Netbeans不再提供有关taglib的错误/警告.
我目前正在将我的C#应用程序转移到Qt/C++.我遇到TagLib的长度问题.我发现奇怪的是TagLib#以毫秒为单位返回音频持续时间,而TagLib以秒为单位返回其(不正确)持续时间.TagLib只为长度值返回零,而TagLib#保持正确.
这是我在C#/ TagLib中的来源#...
TagLib.File tagfile = TagLib.File.Create(path);
uint milliseconds = (uint)tagfile.Properties.Duration.TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)
这里应该是C++/TagLib中几乎相同的东西.我甚至强迫它准确阅读.没有成功.
TagLib::FileName fn(path);
TagLib::FileRef fr(fn, true, TagLib::AudioProperties::Accurate);
uint length = fr.audioProperties()->length();
Run Code Online (Sandbox Code Playgroud)
它对我的大多数媒体文件都有预期的效果.但是,选择的几个音频文件无法返回任何音频属性(标签信息的其余部分读取正常!).返回完全相同的音频属性,TagLib#没有问题.
任何想法都表示赞赏.谢谢.
在赏金结束之前,有没有人有更多的想法?
我试图在grails中创建一个条件标记库,以确定是否显示用户头像(我基于ifLoggedIn标签上的代码:http://www.grails.org/AuthTagLib)
我的taglib看起来像这样:
def ifProfileAvatar = {attrs, body ->
def username = session.user.login
def currentUser = Account.findByLogin(username)
if (currentUser.profile && currentUser.profile.avatar) {
out << "avatar found"
body{}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的GSP中,我使用这样的标签:
<g:ifProfileAvatar>
<br/>profile found!<br/>
</g:ifProfileAvatar>
Run Code Online (Sandbox Code Playgroud)
当我导航到GSP时,"avatar found"正在正确显示(直接来自taglib),但"找到了个人资料!" 不是.
是否有任何理由说明body{}taglib没有在GSP中显示身体?
任何可能出错的想法?
谢谢!
我在我的一个JSP页面中导入liferay标记库时遇到了麻烦,不知道我做错了什么.我在以前的项目中做了完全相同的事情,但现在由于某种原因它不起作用.
我要导入的代码:
<%@ taglib uri="http://liferay.com/tld.ui" prefix="liferay-ui" %>
Run Code Online (Sandbox Code Playgroud)
我得到的语法错误:
The absolute uri: http://liferay.com/tld.ui cannot be resolved in either web.xml or the jar files deployed with this application
Run Code Online (Sandbox Code Playgroud)
我试图相当广泛地谷歌这个问题,但无济于事.liferay的可怕文档(或缺乏文档)也没有大的帮助.
在此先感谢您的帮助!
我正在使用Tomcat上的一些jsp页面开发一个应用程序(在Eclipse上).
我已经下载了JSTL罐子
(http://jstl.java.net/download.html)
Run Code Online (Sandbox Code Playgroud)
并将它们添加到web-inf/lib和我的构建路径.
但是,当我访问该页面时,我总是得到:
SEVERE: Servlet.service() for servlet [jsp] in context with path [/AccessControl2] threw exception [/ADAccess.jsp (line: 16, column: 1) No tag "foreach" defined in tag library imported with prefix "c"] with root cause
org.apache.jasper.JasperException: /ADAccess.jsp (line: 16, column: 1) No tag "foreach" defined in tag library imported with prefix "c"
Run Code Online (Sandbox Code Playgroud)
这是我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
Run Code Online (Sandbox Code Playgroud)
至于我的JSP,我就是这样做的:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 …Run Code Online (Sandbox Code Playgroud) 我对Grails社区比较陌生,但我已经非常喜欢引擎所提供的功能了.目前,我正在实现一个自定义标记库,以便在我们的页面上轻松实现标准设计.但是,我需要一种为实用程序调用辅助函数的方法(例如过滤数据)以及存储关于我的标记的请求级元数据(例如计数器,父/子关系).
我试过两个解决方案:
第一:我创建了一个服务,将其范围设置为"请求"
package myapp
class CustomTagService {
static scope = 'request'
def data = []
def add(localData) {
data.add(localData)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其注入我的标签库时
package myapp
class MyTagLib {
def customTagService
def myTag = { attrs, body ->
customTagService.add(attrs)
}
}
Run Code Online (Sandbox Code Playgroud)
引擎向我大吼大叫引用请求范围(经过长时间的痛苦堆栈跟踪):" 范围'请求'对于当前线程不活动;如果您打算从单例引用它,请考虑为此bean定义范围代理 "
第二:我理解pageScope在标签关闭内部可用,我之前已经开发过了.然而,对于我想要的结构,封装将是更优选的.
如果我走错了路,请告诉我.我们欢迎所有的建议!
我想在我的jsf项目中使用spring security taglibs,所以我对项目进行了以下更改,但是我得到了这个例外:
部署期间发生错误:加载应用程序时出现异常:java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:java.lang.RuntimeException:com.sun.faces.config.ConfigurationException:java.lang .ClassNotFoundException:org.springframework.faces.security.FaceletsAuthorizeTagHandler.有关更多详细信息,请参阅server.log.
我在这做错了什么?我用 :
netbeans 7.1.2 --spring mvc 3.0.6-- spring security 3.1.1 - glassfish 3.1.2和jsf 2.1
springsecurity.taglib.xml:
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://www.springframework.org/security/tags</namespace>
<tag>
<tag-name>authorize</tag-name>
<handler-class>org.springframework.faces.security.FaceletsAuthorizeTagHandler</handler-class>
</tag>
<function>
<function-name>areAllGranted</function-name>
<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
<function-signature>boolean areAllGranted(java.lang.String)</function-signature>
</function>
<function>
<function-name>areAnyGranted</function-name>
<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
<function-signature>boolean areAnyGranted(java.lang.String)</function-signature>
</function>
<function>
<function-name>areNotGranted</function-name>
<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
<function-signature>boolean areNotGranted(java.lang.String)</function-signature>
</function>
<function>
<function-name>isAllowed</function-name>
<function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class>
<function-signature>boolean isAllowed(java.lang.String, java.lang.String)</function-signature>
</function>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)
web.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- /========================jsf config=============================/-->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param> …Run Code Online (Sandbox Code Playgroud) 我是Grails的新手,所以你可能会觉得我的问题很天真.我想覆盖g消息标记.我想在标记的行为中添加新功能,然后从ValidationTagLib调用原始实现.就我而言,我可以创建自己的taglib,重新定义标签.G message是一个实际上从ValidationTaglib调用messageImpl方法的闭包.我的问题是如何调用此方法?我尝试使用此代码来调用闭包,但是我收到了空格而不是消息:
class MyTagLib {
static namespace = "g"
def message = { attrs ->
//my changes in tag's behaviour
def validationTagLib = grailsAttributes.applicationContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib')
validationTagLib.message.call(attrs)
}
}
Run Code Online (Sandbox Code Playgroud)
我非常感谢你的帮助!
我有一个自定义标记库,它返回一个布尔对象,以便我的GSP可以决定是否显示一段HTML.我想使用g:if标签检查这个布尔值,因为我还需要检查一些其他值(在taglib中不可访问).但是,我不知道如何从标签中实际调用taglib?
我试过了:
<g:if test="${<custom:tag/> && other.boolean}">
Run Code Online (Sandbox Code Playgroud)
但这会引发错误.
我也尝试过:
<g:if test="<custom:tag/> && ${other.boolean}">
Run Code Online (Sandbox Code Playgroud)
但这也会引发错误.
目前,我使用JSP页面顶部的以下标记设置并正常工作的taglib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Run Code Online (Sandbox Code Playgroud)
在Maven中我有依赖项:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我需要我的网络应用程序在没有Internet连接的情况下工作,即不在taglib中调用URI,所以我想我可以下载jstl-1.2.jar并将其放在/ WEB-INF/lib文件夹中.然后我可以将我的标签如下:
<%@ taglib uri="/WEB-INF/lib/jstl-1.2" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.它说无法找到标记库描述符.所以我的问题是,如何使用WEB-INF文件夹中的JAR在taglib中使用JSTL,而不是在URI中调用java sun网站?
我需要在web.xml中放置任何内容吗?我是否删除了我的Maven依赖项?我需要在META-INF中添加一些东西吗?
任何帮助将非常感激!谢谢!