我目前正在评估 Struts 2。官方文档包含一个 HelloWorld 示例,其中包含以下 Java 和 JSP 代码:
Java
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
public static final String MESSAGE = "Struts is up and running ...";
public String execute() throws Exception {
setMessage(MESSAGE);
return SUCCESS;
}
private String message;
public void setMessage(String message){
this.message = message;
}
public String getMessage() {
return message;
}
}
JSP
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h2><s:property value="message" /></h2>
</body>
</html>
该示例使用以下 XML 文件指定此操作的 URL,并将操作和 View 绑定(bind)在一起
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="tutorial" extends="struts-default">
<action name="HelloWorld" class="tutorial.HelloWorld">
<result>/HelloWorld.jsp</result>
</action>
</package>
</struts>
我的问题(最后)是:这真的是 Struts2 的最先进技术吗?我被引导相信 XML 配置和子类化特定基类 (ActionSupport) 的必要性已被弃用。我认为可以使用注释来代替配置。
几个更具体的问题:
- 是否有必要为每种请求类型创建一个 Action 类,或者是否可以在一个 eaction 中定义多个方法,每个方法可以处理不同的请求?
- 是否有必要为您想要提供给 View 的数据成员(上例中的“消息”)定义公共(public) getter 和 setter?
如果这是 Struts2 中最先进的技术,那么与 Struts1 相比似乎并没有多大改进,但我怀疑这只是一个糟糕的例子。
谢谢, 唐
最佳答案
一些答案(不是全部):
- 您可以向同一个 Action 类添加多个方法。其中每个都需要返回一个字符串。
- 我认为需要公共(public) getter 和 setter。
- 提供的基类仅定义某些有用的值,例如常量 SUCCESS。
您可以通过“零配置”功能(zero conf doc)来使用注释
关于java - Struts 2 中的注释支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786840/