是否可以访问struts.xml文件中的java内部类?例如,我有以下带有嵌套类的java类:
public class FooServiceAction {
FooServiceImpl service = new FooServiceImpl();
public class ProductAction extends ActionSupport {
private ProductImpl product = new ProductImpl();
public ProductAction() {
}
public ProductAction(ProductImpl product) {
this.product = product;
}
public ProductImpl getProduct() {
return product;
}
public void setProduct(ProductImpl product) {
this.product = product;
}
public String productSetting() {
return SUCCESS;
}
@Override
public void validate() {
if (this.getProduct().getName() == null
|| this.getUser().getName().equals("")) {
addFieldError("name", "Product name is mandatory.");
} else {
service.createProduct(product);
}
}
}
我需要访问struts.xml文件中的嵌套ProductAction类。
<action name="createProduct" class="foo.action.FooServiceAction.ProductAction" method="productSetting">
<result name="success">/launchapp.jsp</result>
<result name="input">/createUser.jsp</result>
</action>
每当我尝试使用jetty启动此项目时,都会抛出异常,因为struts.xml无法找到嵌套的java类。
[错误]无法执行目标org.mortbay.jetty:maven-jetty-plugin:6.0.1:run(d 项目foo-web上的efault-cli:失败:StrutsException:无法加载配置 配给。找不到动作类[foo.action.FooServiceAction.ProductAction] - &gt; [帮助1]
如何使嵌套的java类对struts.xml文件可见?
非常感谢提前
答案 0 :(得分:0)
是的,如果你将内部类静态化,它是可能的。请参阅以下代码
public class FooServiceAction {
public static class ProductAction extends ActionSupport {
使用封闭的类名访问静态嵌套类:
<action name="createProduct" class="foo.action.FooServiceAction.ProductAction" method="productSetting">
Struts将使用ObjectFactory
为静态嵌套类创建一个对象,如:
foo.action.FooServiceAction.ProductAction action =
new foo.action.FooServiceAction.ProductAction();