gpt4 book ai didi

java - 如何向 struts url 标记添加或更改参数?

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:24 25 4
gpt4 key购买 nike

在 struts 中,我希望有一个基本 URL(

<s:url action="getSomeData" id="baseDataUrl">
<s:param name="someID" value="%{currentID}"/>
</s:url>

然后我可以做 <s:property value="baseDataUrl" />它会吐出类似/getSomeData.do?someID=5 的内容。 (对于这个例子,我保持简单的参数,但你可以想象有更多的默认参数。例如,我正在处理的应用程序有 3 个参数,每个 URL 都相同,还有两个改变。)

我希望能够在定义该基本 URL 后添加或更改参数。我在想出两种方法:

<s:url base="baseDataUrl" id="breadUrl">
<s:param name="bread" value="%{'toast'}"/>
</s:url>

然后 <s:property value="breadUrl" />会导致/getSomeData.do?someID=5&bread=toast。另一种方法是使用占位符定义基本 URL:

<s:url action="getSomeData" id="baseDataUrl">
<s:param name="someID" value="%{currentID}"/>
<s:param name="bread" />
<s:param name="jelly" />
</s:url>

然后在我要属性的时候填写:

<s:param url="baseDataUrl" name="bread" value="%{'toast'}"/>
<s:param url="baseDataUrl" name="jelly" value="%{selectedJam}"/>

所以 <s:property value="baseDataUrl" />将导致/getSomeData.do?someID=5&bread=toast&jelly=7。

s:url ( http://struts.apache.org/2.0.14/docs/url.html) 的文档说“允许的动态属性:false”所以我想我正在冒险进入自定义标签领域。这感觉就像一个常见的用例(定义一个带有一些参数的基本 URL,然后添加或更改其中的一些),我不想重新发明轮子。搜索一无所获,但也许我没有在寻找正确的东西。我乐于接受各种各样的建议!

最佳答案

这里有几个我能想到的选项

  1. 使用一个名为“delegatorAction”的 Action ,只写需要的额外参数。您可以编写一个 Action/Handler,然后“推断”其他参数(在本例中为“someID”)。这可能很复杂,每次您的 url 处理逻辑发生变化时,您可能都必须更改此代码
  2. 您可以编写自己的 url 标记,并按照您建议的方式说出一个类似“base”的属性,它只评估 base 属性并向其添加任何参数(您可以为此将 Url 标记子类化)<
  3. 最简单的方法可能是首先将 3 个参数声明为 url,然后使用标准 s:property 标记添加额外参数(哎呀,即使格式正确我也无法输出 xml 代码不知道为什么,一定是因为 Chrome )

在这种方法中,您只是在末尾附加字符串。

关于java - 如何向 struts url 标记添加或更改参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com