论坛首页 Java企业应用论坛

SoybeanMilk-1.0-b2发布

浏览 2188 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-21   最后修改:2011-01-21
SoybeanMilk-1.0-b2有两个改进:
  • 增加了RESTful支持
  • 增加了集合类转换支持

您可以点击 这里 这里了解更多,或者直接点击 这里 下载试用。

1. RESTful支持介绍
现在你可以像下面这样声明动作:
<action name="/user/{request.userId}/edit">
    <invoke> userManager.edit(request.userId) </invoke>
    <target url="/user/{request.userId}/view" type="redirect" />
</action>

这个动作将可以处理诸如“ /user/jack/edit ”、“ /user/tom/edit ”之类的请求。
比如对于“ /user/jack/edit ”请求,框架将首先执行
userManager.edit("jack");

然后转向“ /user/jack/view ”页面。

2. 集合类转换支持
假设有如下复杂的业务模型:
class User{
 private Integer id;
 private String name;
 private List<Product> listProperty;
 private Set<Product> setProperty;
 private Product[] arrayProperty;
 ...
}

class Product{
 private Integer id;
 private String name;
 ...
}

class UserManager{
 public void saveUser(User user){...}
}

如果你声明如下动作:
<action name="/user/save.do">
    <invoke> userManager.saveUser(param) </invoke>
</action>

那么,它将可以直接处理如下表单:
<form action="/user/save.do" method="POST">
  <input type="text" name="id" value="1" />
  <input type="text" name="name" value="jack" />
  <!--listProperty属性-->
  <input type="text" name="listProperty.id" value="11" />
  <input type="text" name="listProperty.name" value="p1" />
  <input type="text" name="listProperty.id" value="12" />
  <input type="text" name="listProperty.name" value="p2" />
  <!--setProperty属性-->
  <input type="text" name="setProperty.id" value="11" />
  <input type="text" name="setProperty.name" value="p1" />
  <input type="text" name="setProperty.id" value="12" />
  <input type="text" name="setProperty.name" value="p2" />
  <!--arrayProperty属性-->
  <input type="text" name="arrayProperty.id" value="11" />
  <input type="text" name="arrayProperty.name" value="p1" />
  <input type="text" name="arrayProperty.id" value="12" />
  <input type="text" name="arrayProperty.name" value="p2" />
</form>

框架会依据这个表单正确地构建一个User类的对象,然后将它传递给UserManager类的saveUser(User user)方法。
.
   发表时间:2011-01-26  
这两天用了一下,很不错的东西,轻量级mvc,很容易上手,很容易集成到spring,还是rest风格。希望楼主能加上注解。
0 请登录后投票
   发表时间:2011-01-26  
gdeaco 写道
这两天用了一下,很不错的东西,轻量级mvc,很容易上手,很容易集成到spring,还是rest风格。希望楼主能加上注解。


帅哥,你这是第一帖啊,够能潜的。

其实,这个框架的设计初衷就是为了消除控制器Java代码的,比如这个简单的hello World示例:
class HelloWorld{
    public String helloWorld(){
        return "Hello World!";
    }
}


在SpringMVC需要这样实现:
@Controller
class HelloWorldController {
    private HelloWorld helloWorld;

    @RequestMapping("/helloWorld")
    public ModelAndView helloWorld() {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("helloWorld");
        mav.addObject("message", helloWorld.helloWorld());
        return mav;
    }
}


而在SoybeanMilk中可以实现为:
<action name="/helloWorld">
    <invoke> message= helloWorld.helloWorld(); </invoke><!--此处的helloWorld实例也可以由Spring托管-->
    <target url="helloWorldView.jsp" />
</action>


所以,SoybeanMilk不像struts或Spring那样有明确的控制器类,也就无法像它们那样采用注解方式了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics