我有一个被校园划分的页面。基本上是相同的页面,但我根据校园更改信息。
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();
}