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

时间:2012-06-09 18:49:09

标签: java struts2

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

param“campus”,设置当前使用的校园。

这项工作非常顺利,例如,如果我访问 localhost / page / campus1 / index.action ,则getCampus方法返回“campus1”,已经预料到了。

但是如果我访问 localhost / page / campus1 / index.action?campus = campus2 ,则getCampus()方法返回“campus2”;我尽量避免这种行为。我希望{campus} param位于优先级之首,没有人可以覆盖他。

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

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

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

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

如果有人在网址中进入真正的校园,但是在校园内放置了“获取方法”,则测试将通过,但所有信息都将是错误的。

我的行动

@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 个答案:

没有答案