Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Wicket中将链接动态添加到字符串中_Java_Hyperlink_Wicket_Dynamic - Fatal编程技术网

Java 在Wicket中将链接动态添加到字符串中

Java 在Wicket中将链接动态添加到字符串中,java,hyperlink,wicket,dynamic,Java,Hyperlink,Wicket,Dynamic,我有一个字符串(用户消息),我想在其中找到(使用regexp)特殊代码,并用链接替换它们。(例如,@user将被替换为东西。)如何在Wicket中完成?我不会问正则表达式,这是一个以Wicket为中心的问题。事实上,Wicket有一个非常强大的特性 假设这是带有键“some.resource.key”的本地化字符串: 然后将以下内容添加到Wicket模板: <wicket:message key="some.resource.key"> <a wicket:id="us

我有一个字符串(用户消息),我想在其中找到(使用regexp)特殊代码,并用链接替换它们。(例如,
@user
将被替换为
东西。)如何在Wicket中完成?我不会问正则表达式,这是一个以Wicket为中心的问题。

事实上,Wicket有一个非常强大的特性

假设这是带有键“some.resource.key”的本地化字符串:

然后将以下内容添加到Wicket模板:

<wicket:message key="some.resource.key">
    <a wicket:id="user">user</a>
</wicket:message>

现在,链接(您可以使用链接的任何实现或您喜欢的任何其他组件)已正确显示并嵌入到本地化字符串中。

Wicket具有IResponseFilter。有了它,您可以对最终的HTML进行后期处理。也就是说,您可以搜索${anything}并将其替换为“which you want”。
为了创建美观的URL,我建议您为特定的域对象装载特定的页面,例如Application#mountPage(“/users/${user}”,UsersPage.class),并使用:RequestCycle.get().urlFor(UsersPage.class,pageParameters)创建URL,其中“pageParameters”包含一个带有键“user”和值“which your extracted with RegEx”的条目。

这些链接指向哪里?在应用程序内部或外部url?不确定您询问的是哪一部分。整件事?无论如何,这里有一个很好的链接。Regexp是简单的部分。我想问一下Wicket-part。你能举个例子说明你需要什么吗?以及您不确定的部分。例如,@user将替换为thing。正如我所说,文本是一些用户消息。我们不知道这个文本是什么,也不知道它是否包含任何代码。用户不知道语法
${User_nick}
,文本可能包含语法错误。因此,您需要为每个用户定义
user
,而这实际上不是一个(纯粹)Wicket相关的问题。使用regexp查找要替换的字符串,提取用户名,查找用户并用链接替换字符串。就这么简单。要获得Wicket页面的正确URL,可以使用任何组件的urlFor()方法。
<wicket:message key="some.resource.key">
    <a wicket:id="user">user</a>
</wicket:message>
add(new Link("user"));