Browsing projects by Tag(s)

Select a tag to browse associated projects and drill deeper into the tag cloud.

Showing page 1 of 1

If you known rails, you must love its developer-friendly features such as params attribute in controller, the log of each request and so on. Now, this project is trying to bring these features to JavaEE as possible as it can. And there is one and only one rule: non-aggressive. Any apps can ... [More] benefit from this project, regardless whether using any frameworks or not. Now there are two filters, bring two rails-like features: RailsLikeParamsFilter - create params in the request which contains the request params DebugFilter - log infos of each request to stdout You just need to config these filters in web.xml, nothing else.Let's go... RailsLikeParamsFilterif the request param is something like this:foo[]=xxx&foo[]=yyy&...we automatically convert it to List, and put it in HttpServletRequest, with name "foo"。 So you can take it back: List list = request.getAttribute("foo")if the request param is something like this:foo[aaa]=xxx&foo[bbb]=yyy&...we automatically convert it to Map, and put it in HttpServletRequest, with name "foo"。 So you can take it back: Map map = request.getAttribute("foo")Why is , because we can convert the value if possible Value StringJava Class Integer numbers like 123Integer Float numbers like 123.45Double true/falseBoolean yyyy-MM-dd or yyyy/MM/dd or yyyy.MM.dd (like 1984-01-25) Date start by "l_",devided by ',' like l_1,2,3,4,5 List (recursion, numbers are also converted) start by "m_",entris devided by ',' and key-value devided by ':' like m_age:1,male:true Map (recursion, numbers are also converted) After convertion, all these converted values are put in a Map, the key is remain the name of the orignal request name, and then put the map in the HttpServletRequest, with the name "params" For example, given URL: foo/bar.action?person[age]=25&person[male]=true&person[birthday]=1984-01-25&person[emails]=l_a@b.com,c@d.comIn your controller: Map params = request.getAttribute("params"); Map person = params.get("person"); System.out.println(person);Then you get {birthday=Wed Jan 25 00:00:00 CST 1984, emails=[a@b.com, c@d.com], age=25, male=true} Add the Flash ScopeLike RAILS' flash[:foo], now you can do similar thing in J2EE: In your controller: ((Map)request.getSession().getAttribute("FLASH_SCOPE")).put("foo",value); In your view(normally this is a redirect page): ${FLASH_SCOPE.foo} Done! The rest is handled by the filter Other bouns{queryString} => String of current request params, in request scope {root} => context path, in request scope {paramName} => String of each request params, in request scope if there is more than one param use the same name(like foo[] above), then they are splited in new params names like foo_0, foo_1, each for one value, and the orignal param's value is modified to "value0,value1,value2,..." . Configration is just like normal filters RailsLikeParamsFilter jacky.lanlan.song.web.RailsLikeParamsFilter add-flash-scope false RailsLikeParamsFilter /* DebugFilterThis is for debug purpose, just config it, and it can log lots of useful infomation to your stdout. Configration debug jacky.lanlan.song.web.DebugFilter showHeaders false showServletContextParams false debug /* There is one more init-param, exclude-url-pattern, take a regex String as value, it controlls which URLs the filter should not focus on, the default value is ".+(\.css|\.js|\.png|\.jpg|\.gif)$" That's all for version 0.1, other features will be added ASAP. [Less]

0
 
  0 reviews  |  0 users  |  0 current contributors  |  Analyzed 12 days ago
 
 
 
 

Creative Commons License Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.