01: /*
02: * Created on Jul 16, 2006
03: */
04: package uk.org.ponder.rsf.springmvc;
05:
06: import org.springframework.beans.factory.FactoryBean;
07:
08: import uk.org.ponder.rsf.viewstate.SimpleViewParameters;
09: import uk.org.ponder.rsf.viewstate.ViewParameters;
10:
11: /** Performs default resolution of the SpringMVC view name into an RSF
12: * ViewParameters. Returns a SimpleViewParameters with the viewID set to
13: * the last path component of the view name, minus any extension.
14: * @author Antranig Basman (amb26@ponder.org.uk)
15: *
16: */
17: public class SpringMVCViewParametersFactory implements FactoryBean {
18:
19: private String mvcview;
20:
21: public void setSpringMVCView(String mvcview) {
22: this .mvcview = mvcview;
23: }
24:
25: public Object getObject() throws Exception {
26: int lastslashpos = mvcview.lastIndexOf('/');
27: if (lastslashpos == -1)
28: lastslashpos = 0;
29: int lastdotpos = mvcview.lastIndexOf('.', lastslashpos);
30: if (lastdotpos == -1)
31: lastdotpos = mvcview.length();
32:
33: String viewID = mvcview.substring(lastslashpos, lastdotpos);
34: return new SimpleViewParameters(viewID);
35: }
36:
37: public Class getObjectType() {
38: return ViewParameters.class;
39: }
40:
41: public boolean isSingleton() {
42: return true;
43: }
44:
45: }
|