有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Struts2:我的静态参数被get方法覆盖

我有一个按校园划分的页面。基本上是相同的页面,但我会根据校园情况更改信息

参数“校园”,设置谁是当前使用的校园

例如,如果我访问localhost/page/campus1/index,这将非常有效。操作,getCampus方法返回“campus1”,已预期

但是如果我访问localhost/page/campus1/index。行动campus=campus2,getCampus()方法返回“campus2”;我尽量避免这种行为。我希望{campus}param是最重要的,没有人能超越他

我使用“param”拦截器中的“excludeParams”来排除“campus”,但现在getCampus返回null

如何从struts2读取的参数中排除某些get/post方法

可以避免静态参数被其他参数覆盖吗

编辑: 我有一个拦截器,它会说选择的校园是否有效

如果有人在url中输入了一个真实的校园,但是使用了一个错误的校园放置了一个“get方法”,那么测试将通过,但是所有的信息都是错误的

我的行动

@Action(value="{campus}/index",
    results={
        @Result(name=SUCCESS,location="/jsp/campusindex.jsp"),
    }
)
public String campusIndex(){
    return SUCCESS;
}
public void setCampus(String campus){
    this.campus=campus;
}
public String getCampus(){
    return this.campus;
}

我的jsp

<%@ taglib prefix="s" uri="/struts-tags"%>
<s:label name="campus"/>

我的拦截器

 public String intercept(ActionInvocation actionInvocation) throws Exception {
     ActionConfig config = actionInvocation.getProxy().getConfig();
    String campus = config.getParams().get("campus");
    try{
        Campus.isaValidCampus(campus);
    } catch(Exception e){
        return "error404";
    }
    return actionInvocation.invoke();
}

共 (0) 个答案