是否可以在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>
每当我尝试使用码头启动该项目时,都会引发异常,因为struts.xml无法找到嵌套的Java类。
[错误]无法在项目foo-web上执行目标org.mortbay.jetty:maven-jetty-plugin:6.0.1:run(d efault-cli):失败:StrutsException:无法加载配置。找不到动作类[foo.action.FooServiceAction.ProductAction]-> [帮助1]
如何使嵌套的Java类对struts.xml文件可见?
提前谢谢了
是的,如果您将内部类设为静态,则是可能的。见下面的代码
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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句