I have found some pretty RESTful approaches to map actions. I think Struts 2
must borrowed these ideas.

>From V|Raptor:
http://vraptor.caelum.com.br/documentation/vraptor3-ten-minutes-guide/

public class ProductsController {
    //...
   
    @Get
    @Path("/products")
    public List<Product> list() {...}
   
    @Post
    @Path("/products")
    public void add(Product product) {...}

    @Get
    @Path("/products/{product.id}")
    public void view(Product product) {...}
   
    @Put
    @Path("/products/{product.id}")
    public void update(Product product) {...}
   
    @Delete
    @Path("/products/{product.id}")
    public void remove(Product product) {...}
   
}


>From Spring MVC 3:
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch15s03.html

@Controller
@RequestMapping("/appointments")
public class AppointmentsController {

    private final AppointmentBook appointmentBook;
    
    @Autowired
    public AppointmentsController(AppointmentBook appointmentBook) {
        this.appointmentBook = appointmentBook;
    }

    @RequestMapping(method = RequestMethod.GET)
    public Map<String, Appointment> get() {
        return appointmentBook.getAppointmentsForToday();
    }

    @RequestMapping(value="/{day}", method = RequestMethod.GET)
    public Map<String, Appointment> getForDay(@PathVariable
@DateTimeFormat(iso=ISO.DATE) Date day, Model model) {
        return appointmentBook.getAppointmentsForDay(day);
    }

    @RequestMapping(value="/new", method = RequestMethod.GET)
    public AppointmentForm getNewForm() {
        return new AppointmentForm();
    }

    @RequestMapping(method = RequestMethod.POST)
    public String add(@Valid AppointmentForm appointment, BindingResult
result) {
        if (result.hasErrors()) {
            return "appointments/new";
        }
        appointmentBook.addAppointment(appointment);
        return "redirect:/appointments";
    }
}

And about Struts 2 RESTful plugin: I found it not so good as it could be. It
is not flexible enough. Maybe it can be rewritten to allow map actions like
in examples above?
-- 
View this message in context: 
http://old.nabble.com/Pretty-mapping-of-actions-tp26382540p26382540.html
Sent from the Struts - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to