浏览 1486 次
|
锁定老贴子 主题:如何用main方式启动xwork2.0?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-03-03 关键字: xwork
如何用main方式启动xwork2.0?
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-03-03
public static void main(String[] args) throws Exception {
Map paramMap = new HashMap();
paramMap.put("id", "0123456789");
// set the ActionContext parameters
Map context = new HashMap();
context.put(ActionContext.PARAMETERS, paramMap);
// ConfigurationManager cm = new ConfigurationManager();
//
// Configuration conf = cm.getConfiguration();
//
//
// create an action proxy with no namespace, action alias (defined in xwork.xml), and a map of the context info
ActionProxy proxy = new DefaultActionProxyFactory().createActionProxy(
"", "viewBook", context);
// we have the action proxy instance, lets execute it and retrieve the action
String result = proxy.execute();
if ("success".equals(result)) {
ViewBookAction action = (ViewBookAction) proxy.getAction();
// return info back to caller or just print to screen for this example
System.out.println(action.getBook().getTitle());
} else if ("notFound".equals(result)) {
// forward to another inventory source
} else {
throw new RuntimeException("Im lazy");
}
}
以上代码会产生问题NullPointer异常,看代码好象是Container没有注入,原来的代码是 ActionProxy proxy = ActionProxyFactory().getFactory().createActionProxy( "", "viewBook", context); 但是2.0根本就不能如此用.刚刚接触xwork. |
|
| 返回顶楼 | |
|
最后更新时间:2007-03-03
改成如下方式就可以了:
package com.jamesby.xwork.helloworld;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.DefaultActionProxyFactory;
import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.ConfigurationManager;
import com.opensymphony.xwork2.inject.Container;
public class BookMain {
public static void main(String[] args) throws Exception {
Map paramMap = new HashMap();
paramMap.put("id", "0123456789");
Map context = new HashMap();
context.put(ActionContext.PARAMETERS, paramMap);
ConfigurationManager cm = new ConfigurationManager();
Configuration conf = cm.getConfiguration();
Container containter = conf.getContainer();
DefaultActionProxyFactory actionProxyFactory = new DefaultActionProxyFactory();
actionProxyFactory.setContainer(containter);
ActionProxy proxy = actionProxyFactory.createActionProxy(
"", "viewBook", context);
String result = proxy.execute();
if ("success".equals(result)) {
ViewBookAction action = (ViewBookAction) proxy.getAction();
System.out.println(action.getBook().getTitle());
System.out.println("Success.................");
} else if ("notFound".equals(result)) {
} else {
throw new RuntimeException("Im lazy");
}
}
}
xwork.xml <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 2.0//EN" "http://www.opensymphony.com/xwork/xwork-2.0.dtd">
<xwork>
<include file="xwork-default.xml"/>
<package name="default" extends="xwork-default">
<result-types>
<result-type name="myResult"
class="com.jamesby.xwork.helloworld.MyResult" />
</result-types>
<action name="viewBook" class="com.jamesby.xwork.helloworld.ViewBookAction">
<result type="myResult">
</result>
</action>
</package>
<constant name="devMode" value="false" />
</xwork>
package com.jamesby.xwork.helloworld;
import com.opensymphony.xwork2.Action;
public class ViewBookAction implements Action {
Book book;
String id;
public String execute() throws Exception {
book = new Book(); // book = bookDAO.findById(id, Book.class);
book.setTitle("My book title ..............");
if (book != null)
return "success";
return "notFound";
}
public Book getBook() {
return this.book;
}
public void setId(String id) {
this.id = id;
}
}
package com.jamesby.xwork.helloworld;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
public class MyResult implements Result {
public void execute(ActionInvocation invocation) {
System.out.println("my result is invoked..............");
}
}
|
|
| 返回顶楼 | |
|
最后更新时间:2007-05-31
大哥你的程序 能跑对吗?
|
|
| 返回顶楼 | |
|
最后更新时间:2007-05-31
具体说一下你的 配置文件怎么放,都在什么位置, !!
|
|
| 返回顶楼 | |




