Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 如何向struts url标记添加或更改参数?_Java_Jsp_Struts2_Struts - Fatal编程技术网

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

Java 如何向struts url标记添加或更改参数?,java,jsp,struts2,struts,Java,Jsp,Struts2,Struts,在struts中,我希望有一个基本URL(an,这里有一些我能想到的选项 使用一个名为“delegatorAction”的操作,只写入所需的额外参数。您可以编写一个操作/处理程序,然后“推断”其他参数(在本例中为“someID”)。这可能会很复杂,每次更改url处理逻辑时,您可能都必须更改此代码 您可以编写自己的url标记,并按照您建议的方式使用类似于“base”的属性,它只计算base属性并向其添加任何参数(您可以为此对url标记进行子类化) 最简单的方法可能是首先将3个参数声明为url,然后

在struts中,我希望有一个基本URL(an,这里有一些我能想到的选项

  • 使用一个名为“delegatorAction”的操作,只写入所需的额外参数。您可以编写一个操作/处理程序,然后“推断”其他参数(在本例中为“someID”)。这可能会很复杂,每次更改url处理逻辑时,您可能都必须更改此代码
  • 您可以编写自己的url标记,并按照您建议的方式使用类似于“base”的属性,它只计算base属性并向其添加任何参数(您可以为此对url标记进行子类化)
  • 最简单的方法可能是首先将3个参数声明为url,然后使用标准的s:property标记添加额外的参数(见鬼,即使格式正确,我也无法输出xml代码不知道为什么,一定是因为chrome)

  • 在这种方法中,您只需在末尾添加字符串。

    #3是我最终采用的方法--我定义了一些基本URL,然后s:property将它们死掉。这不是最优雅的解决方案,但它将我的LOC减少了近60%!谢谢。
    <s:url action="getSomeData" id="baseDataUrl">
        <s:param name="someID" value="%{currentID}"/>
    </s:url>
    
    <s:url base="baseDataUrl" id="breadUrl">
        <s:param name="bread" value="%{'toast'}"/>
    </s: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}"/>