标签: taglib

为什么这个(琐碎的)单元测试失败了?

这几乎是从IBM的Mastering Grails系列中逐字记录下来的.

DateTagLib.groovy:

class DateTagLib {
  def thisYear = {
    out << Calendar.getInstance().get(Calendar.YEAR)
  }
}
Run Code Online (Sandbox Code Playgroud)

DateTagLibTests.groovy:

class DateTagLibTests extends TagLibUnitTestCase {
    def dateTagLib

    protected void setUp() {
        super.setUp()

        dateTagLib = new DateTagLib()
    }

    void testThisYear() {
        String expected = Calendar.getInstance().get(Calendar.YEAR)
        assertEquals("years do NOT match", expected, dateTagLib.thisYear())
    }

    protected void tearDown() {
        super.tearDown()
    }
}
Run Code Online (Sandbox Code Playgroud)

grails test-app DateTagLib 输出:

-------------------------------------------------------
Running 1 unit test...
Running test DateTagLibTests...
                    testThisYear...FAILED
Tests Completed in 359ms ...
-------------------------------------------------------
Tests passed: 0 …
Run Code Online (Sandbox Code Playgroud)

java grails groovy junit taglib

2
推荐指数
1
解决办法
382
查看次数

意外的非NULL返回

我正在使用TagLib(在Windows上,使用MingW构建).我想让TagLib识别MP3文件中没有ID3v1或ID3v2信息.根据TagLib文档,当文件中没有ID3v2信息时,MPEG File对象中的ID3v2Tag()函数应返回NULL指针.

不幸的是,这种情况并未发生.我有一些我在我的代码中使用的测试MP3文件(我已经提供了文件):

  • blank.mp3(下载),完全没有ID3v1或ID3v2信息.我可以通过在文件二进制内容中对"TAG"和"ID3"进行纯文本搜索来确认这一点.
  • only_album_id3v2.mp3(下载),有ID3v2信息(只设置了相册)
  • only_album_id3v1.mp3(下载),有ID3v1信息(只设置了相册)

这是我的代码.

#include <iostream>

#include <mpeg/mpegfile.h>
#include <mpeg/id3v2/id3v2tag.h>

using namespace std;

int main()
{
    cout << "Test." << endl;

    TagLib::MPEG::File a("tests/other/blank.mp3");
    TagLib::MPEG::File b("tests/id3v2/only_album_id3v2.mp3");
    TagLib::MPEG::File c("tests/id3v1/only_album_id3v1.mp3");


    TagLib::ID3v2::Tag * at = a.ID3v2Tag();
    TagLib::ID3v2::Tag * bt = b.ID3v2Tag();
    TagLib::ID3v2::Tag * ct = c.ID3v2Tag();

    cout << at->album() << endl;
    cout << bt->album() << endl;
    cout << ct->album() << endl;

    cout << "The program is done.";

    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c++ windows taglib

2
推荐指数
1
解决办法
309
查看次数

如何为Windows编译静态Taglib库?

我不想编译动态库,所以这个问题没用.

我下载了taglib并使用以下方法编译它:

cmake -DENABLE_STATIC=ON -DENABLE_STATIC_RUNTIME=ON -DWITH_MP4=ON -G "Visual Studio 10"
Run Code Online (Sandbox Code Playgroud)

这会生成Visual Studio解决方案,我可以编译"tag"项目,该项目在taglib/Release中生成tag.lib.

当我尝试在测试应用程序中使用库时出现问题 - 没什么,只是一个简单的测试:

#include "stdafx.h"
#include "fileref.h"

int _tmain(int argc, _TCHAR* argv[])
{
    TagLib::FileRef d("");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下链接器错误:

Error   1   error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall TagLib::FileRef::~FileRef(void)" (__imp_??1FileRef@TagLib@@UAE@XZ)  C:\...\taglib_test\taglib_test\taglib_test.obj  taglib_test
Error   2   error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall TagLib::FileRef::FileRef(class TagLib::FileName,bool,enum TagLib::AudioProperties::ReadStyle)" (__imp_??0FileRef@TagLib@@QAE@VFileName@1@_NW4ReadStyle@AudioProperties@1@@Z)    C:\...\taglib_test\taglib_test\taglib_test.obj  taglib_test
Error   4   error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall TagLib::FileName::FileName(char const *)" (__imp_??0FileName@TagLib@@QAE@PBD@Z) C:\...\taglib_test\taglib_test\taglib_test.obj  taglib_test …
Run Code Online (Sandbox Code Playgroud)

windows taglib static-libraries visual-studio-2010

2
推荐指数
1
解决办法
1629
查看次数

如何在 Windows 上设置 taglib 字符集以使用 unicode?

TagLib 使用 CMake 构建系统来创建 Visual Studio 2010 解决方案和项目文件。

生成的项目唯一的问题是字符集设置为 MBCS,而我希望它是 Unicode。

有没有办法通过 CMake 设置这个选项?

我目前正在使用它在 VS2010 命令提示符下在 Windows 上构建 taglib:

cmake -DWITH_MP4=ON -DENABLE_STATIC=ON .
Run Code Online (Sandbox Code Playgroud)

unicode build-automation cmake taglib

2
推荐指数
1
解决办法
1543
查看次数

在.taglib.xml中注册自定义组件后,Netbeans中没有属性自动完成

我为它创建了一个自定义组件SelectOneRadio,并将其注册xyz.taglib.xml到目前为止它的工作原理.唯一的问题是我的NetBeans无法在自动完成中看到我的标记属性.例如,如果我layout="pageDirection"在我的自定义组件中,那么它会正确渲染,但是当我(Ctrl +空格)我看不到时layout,value...属性.这里是我在我注册我的自定义组件WEB-INF/faces-config.xml,我有

<component>
    <component-type>com.xyz.om.ui.component.SelectOneRadio</component-type>
    <component-class>
        com.xyz.om.ui.component.SelectOneRadio
    </component-class>
    <component-extension>
        <component-family>com.xyz.om.ui.component.SelectOneRadio</component-family>
        <renderer-type>com.xyz.om.ui.renderer.SelectOneRadioRenderer</renderer-type>
    </component-extension>
</component>
<render-kit>
    <renderer>
        <component-family>com.xyz.om.ui.component.SelectOneRadio</component-family>
        <renderer-type>com.xyz.om.ui.renderer.SelectOneRadioRenderer</renderer-type>
        <renderer-class>
            com.xyz.om.ui.renderer.SelectOneRadioRenderer
        </renderer-class>    
    </renderer>
</render-kit>
Run Code Online (Sandbox Code Playgroud)

在我WEB-INF/xyz.taglib.xml,我有

<facelet-taglib 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-facelettaglibrary_2_0.xsd"
            version="2.0">
<namespace>http://example.com/ui</namespace>
<tag>
    <tag-name>selectOneRadio</tag-name>
    <component>
        <component-type>com.xyz.om.ui.component.SelectOneRadio</component-type>
        <renderer-type>com.xyz.om.ui.renderer.SelectOneRadioRenderer</renderer-type>            
    </component>
</tag>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)

所以我注册xyz.taglib.xmlweb.xml如下

<context-param>
    <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
    <param-value>/WEB-INF/xyz.taglib.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

完成此步骤后,如果我在自定义组件上按Ctrl +空格(Netbeans),我只能看到class, id, parent , rendered, rendererType, transient.所以我尝试xyz.tld在WEB-INF下创建一个这样的

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" 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 …
Run Code Online (Sandbox Code Playgroud)

jsf netbeans taglib custom-component jsf-2

2
推荐指数
1
解决办法
1543
查看次数

你如何在ubuntu上编译taglib?

我正在尝试从ubuntu 12.04上的taglib 1.8编译一个例子http://taglib.github.com/

我将一个示例复制到目录中,fileref.h并尝试用g ++编译它

cp taglib-1.8/examples/tagreader.cpp taglib-1.8/taglib
cd taglib-1.8/taglib/
g++ -o testreader.exe tagreader.cpp 
tagreader.cpp:28:21: fatal error: fileref.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

我如何在ubuntu上编译taglib?

编辑

嗨Lukas - 感谢您的回复.我想制作一个简单的cli程序,将id3标签写入mp3文件(参见/sf/ask/925126611/ -and-artist-and-the-id3v2).

到目前为止,我只是解开了taglib 1.8.

(1)如何在ubuntu 12.04上构建taglib?当我尝试第二个命令时,我收到以下错误

Package taglib was not found in the pkg-config search path.
Perhaps you should add the directory containing `taglib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'taglib' found
tagreader.cpp:28:21: fatal error: fileref.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

但是文件 …

c++ taglib

2
推荐指数
1
解决办法
6631
查看次数

在Eclipse中找不到JSTL核心库描述符错误

我收到以下错误:

在此输入图像描述

我有的taglib声明:

  <%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/core" %> 
Run Code Online (Sandbox Code Playgroud)

我也在项目库文件夹中包含了jstl.jar,如上所示.那可能是其他可能的原因.

eclipse jsp jstl taglib java-ee

2
推荐指数
1
解决办法
1万
查看次数

JSTL c:没有显示变量的值

我正在关注一个关于spring的教程,我应该在控制器中设置一个变量,以便在jsp中打印呈现请求.代码如下:

@Controller
public class HelloController {

    @RequestMapping(value="/hello.htm")
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse  response) throws ServletException, IOException {
        String now = (new Date()).toString();
        return new ModelAndView("WEB-INF/views/hello.jsp", "now", now);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,hello.jsp代码如下:

<%@ page session="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
    <body>
        <p>Greetings, it is now <c:out value="${now}" /></p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望得到一个显示这个的HTML:

Greetings, it is now Mon Fri Dec 06 00:39:35 CET 2013
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

Greetings, it is now ${now}
Run Code Online (Sandbox Code Playgroud)

我已经检查了两次(甚至更多!)但是一切似乎都像教程所说的那样但是必须有一些东西缺失,我希望......

我的代码出了什么问题?

spring jsp jstl spring-mvc taglib

2
推荐指数
1
解决办法
1万
查看次数

Grails:可以从taglib调用资产管道以包含javascript依赖项吗?

我有一个taglib,它依赖于javascript文件.我想利用资产管道在我的taglib中包含这个文件.

这可能吗?

资产管道是否具有可以从taglib中调用的任何函数,提供与通过在视图中调用以下内容相似的功能:

<asset:javascript src="application.js"/>
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript grails taglib asset-pipeline

2
推荐指数
1
解决办法
570
查看次数

g:if 里面 g:link 不起作用

问题标题足以解释除了我尝试的尝试:

尝试1:

<g:link controller="staff" action="all" <g:if test="${actionName=='all' }">class="active"</g:if> >Overview</g:link>
Run Code Online (Sandbox Code Playgroud)

错误信息

错误 500

:org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException 消息Grails 标记 [g:link] 未关闭


尝试2:

<g:link controller="staff" action="all" class="<g:if test="${actionName=='all' }">active</g:if>" >Overview</g:link>
Run Code Online (Sandbox Code Playgroud)

错误信息

错误 500 Class org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException 消息属性值必须被引用(controller="staff" action="all" class="

如何进行分支来决定元素是否具有 css class X ?

X(在本例中)= 活动

syntax grails taglib gsp

2
推荐指数
1
解决办法
703
查看次数