Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/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 2中某些Struts 1方法的替代方法_Java_Struts2_Struts_Struts 1_Actionresult - Fatal编程技术网

Java Struts 2中某些Struts 1方法的替代方法

Java Struts 2中某些Struts 1方法的替代方法,java,struts2,struts,struts-1,actionresult,Java,Struts2,Struts,Struts 1,Actionresult,我已经编写了一些在Struts 2中实现Struts 1功能的方法 Struts 1ActionForward: new ActionForward("/home/ShowPage.do?page=edit",true); 与我在Struts 2中所做的相同: public String myActionForward(String url,boolean isRedirect) throws Exception { if(isRedirect){ response.s

我已经编写了一些在Struts 2中实现Struts 1功能的方法

Struts 1
ActionForward

new ActionForward("/home/ShowPage.do?page=edit",true);
与我在Struts 2中所做的相同:

public String myActionForward(String url,boolean isRedirect) throws Exception
{
    if(isRedirect){
        response.sendRedirect(url);
    }else{
        RequestDispatcher rd = request.getRequestDispatcher(url);
        rd.forward(request, response);
    }
    return null;
}
myActionForward("/home/ShowPage.do?page=edit",true);
String url = mapping.findForward(result).getPath();
public String myGetPath(String result) throws Exception
{
    Map<String,ResultConfig> results = ActionContext.getContext().getActionInvocation().getProxy().getConfig().getResults();
    ResultConfig rc = results.get(result);
    String path = rc.getParams().get("location");
    return path;
}

String url = myGetPath(result);

Struts 1:获取结果路径:

public String myActionForward(String url,boolean isRedirect) throws Exception
{
    if(isRedirect){
        response.sendRedirect(url);
    }else{
        RequestDispatcher rd = request.getRequestDispatcher(url);
        rd.forward(request, response);
    }
    return null;
}
myActionForward("/home/ShowPage.do?page=edit",true);
String url = mapping.findForward(result).getPath();
public String myGetPath(String result) throws Exception
{
    Map<String,ResultConfig> results = ActionContext.getContext().getActionInvocation().getProxy().getConfig().getResults();
    ResultConfig rc = results.get(result);
    String path = rc.getParams().get("location");
    return path;
}

String url = myGetPath(result);
与我在Struts 2中所做的相同:

public String myActionForward(String url,boolean isRedirect) throws Exception
{
    if(isRedirect){
        response.sendRedirect(url);
    }else{
        RequestDispatcher rd = request.getRequestDispatcher(url);
        rd.forward(request, response);
    }
    return null;
}
myActionForward("/home/ShowPage.do?page=edit",true);
String url = mapping.findForward(result).getPath();
public String myGetPath(String result) throws Exception
{
    Map<String,ResultConfig> results = ActionContext.getContext().getActionInvocation().getProxy().getConfig().getResults();
    ResultConfig rc = results.get(result);
    String path = rc.getParams().get("location");
    return path;
}

String url = myGetPath(result);
公共字符串myGetPath(字符串结果)引发异常
{
映射结果=ActionContext.getContext().getActionInvocation().getProxy().getConfig().getResults();
ResultConfig rc=results.get(结果);
字符串路径=rc.getParams().get(“位置”);
返回路径;
}
字符串url=myGetPath(结果);
就像这样,我在Struts 2中编写了一些替代方法


上述替代方法效果良好。但是我需要知道,这些方法在将来会有什么问题吗?或者我需要改变上述方法中的任何内容,以实现与Struts 1相同的效果

您应该使用Struts2
Result
实现,而不是直接使用servlet,直到您知道自己在做什么。有
redirect
redirectAction
dispatcher
结果类型,应该使用它们来代替直接servlet API。Struts可能会包装servlet内容以进行某些功能更改,将来可能会得到无法工作的代码

第二种方法是有效的,因为它使用Struts2 API。然而,你需要看看