Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/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
struts2下拉列表_Struts2 - Fatal编程技术网

struts2下拉列表

struts2下拉列表,struts2,Struts2,我需要在struts2 from List中创建一个下拉菜单。如何创建一个action类,以便在加载.jsp页面时,它首先填充列表 我找到了这个链接,它也可以工作,但对于it工作,用户必须转到才能使其工作,但是如果有人直接转到select.jsp呢。由于您使用的是.jsp,您可以在呈现标记之前加载带有脚本的下拉列表 但是,更好的做法是允许操作执行加载并将.jsp文件隐藏在/WEB-INF下,这样它们就不能直接访问。执行此操作的常用方法是 如果您的拦截器堆栈中有它,则在调用请求的方法之前,它将自动

我需要在struts2 from List中创建一个下拉菜单。如何创建一个action类,以便在加载.jsp页面时,它首先填充列表


我找到了这个链接,它也可以工作,但对于it工作,用户必须转到才能使其工作,但是如果有人直接转到select.jsp呢。

由于您使用的是.jsp,您可以在呈现
标记之前加载带有脚本的下拉列表

但是,更好的做法是允许操作执行加载并将.jsp文件隐藏在/WEB-INF下,这样它们就不能直接访问。执行此操作的常用方法是

如果您的拦截器堆栈中有它,则在调用请求的方法之前,它将自动调用操作中具有以下名称的任何方法

  • 准备{MethodName}()
  • prepareDo{MethodName}()
  • 准备()
这意味着您可以在行动中执行以下操作:

public class YourAction extends ActionSupport {

    public String prepare(){
         // populate your drop down object
    }   

    public String view(){
         // forward to your jsp
         return SUCCESS;
    }

}

然后,您所要做的就是调用操作的view()方法,Struts将首先调用prepare。

那么,让我看看我是否正确:我在类中实现prepare()方法,将它转发到使用该列表的页面?比如说,如果action类有3个diff forward,那么不是每个forward都会调用它,而且不是所有的forward都会使用该列表。我说得对吗?不是这样。您可以使用“excludeMethods”参数来防止它在某些方法名称上运行(请参阅工作流拦截器中有关排除的部分:)。还有一个“alwaysInvokePrepare”参数,您可以将其设置为false,以便只调用以方法名称为后缀的prepare方法(即,如果您的操作中有一个view()方法,并且alwaysInvokePrepare=false,则只会调用prepareView())。您还知道我如何实现依赖下拉列表吗?谢谢Pat,我正试图遵循这一点,但我一直在研究如何在选择第一个下拉值时调用操作方法!jquery能够处理列表还是必须处理JSON?您必须在下拉菜单上创建一个onchange事件处理程序,该下拉菜单向您的操作发出ajax请求。然后,操作必须以您最容易使用的格式创建响应。我建议将列表转换为JSON对象,然后使用该对象创建新的依赖下拉列表。我不确定您使用的Struts2的版本,但如果它尚未捆绑,这是一个很好的插件: