struts2 code-behind

阅读更多
code-behind在struts2里有两种表现形式:
1.Default mappings (默认映射):其实就是访问那些没有配置过Action的JSP页面,也能像访问Action那样访问。
比如说在项目${root}/leo/a.jsp 有这么一个a.jsp.
我可以在地址栏里输入:http://localhost:8080/项目名称/leo/a.action 来访问这个 a.jsp
效果与 http://localhost:8080/项目名称/leo/a.jsp是一样的。类似于咱们在welcome-file 那里定义的index,
这就是默认映射。

2.Default results (默认结果):其实就是无须显示的在struts-*.xml里配置那些返回 jsp, vm. ftl视图的Action。
比如说,我有一个以下配置文件, 没有result.




Action文件是这样的:
package code;

import com.opensymphony.xwork2.ActionSupport;

public class LeoAction extends ActionSupport {

private static final long serialVersionUID = 1L;

private String flag = "";

public String getFlag() {
return flag;
}

public void setFlag(String flag) {
this.flag = flag;
}

public String execute() {
if (flag == null || flag.equals("")) {
this.addActionMessage("input message");
return INPUT;
} else if (flag != null && flag.equals("error")) {
this.addActionError("error happen");
return ERROR;
} else {
this.addActionMessage("I am leo");
return SUCCESS;
}
}

}

故意设置了一个 flag 来查看结果。 通过,http://localhost:8080/项目名称/leo/leo.action?flag=测试值
你会发现,
INPUT   对应 http://localhost:8080/项目名称/leo/leo-input.jsp
ERROR   对应 http://localhost:8080/项目名称/leo/leo-error.jsp
SUCCESS 对应 http://localhost:8080/项目名称/leo/leo-success.jsp

这就是默认结果的意思。

下面是codebehind的path示例:

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">





value="ApplicationResources,errors" />


value="/WEB-INF/pages/" />








class="com.flips.action.DashBoard">
dashBoard.jsp



class="com.flips.action.RuleImpl">
ruleList.jsp





你可能感兴趣的:(JSP,Struts,Apache,XML)