2

I am using Java with Spring framework. Given the following url:

www.mydomain.com/contentitem/234

I need to map all requests that come to /contentitem/{numeric value} mapped to a given controller with the "numeric value" passed as a parameter to the controller.

Right now in my servlet container xml I have simple mappings similar to the following:

...
<entry key="/index.html">
   <ref bean="homeController" />
</entry>
...

I am just wondering what I need to add to the mapping in order to achieve what I described?

Edit: I unaccepted the answer temporarily because I can't seem to figure out how to do the mapping in my web.xml (I am using annotations as described in axtavt's answer below). How do I add a proper <url-pattern>..</url-pattern> in my <servlet-mapping> so that the request for "/contentitem/{numeric_value}" gets properly picked up? Thanks!

3 Answers 3

4

It can be done using annotation-based controller configuration (see 15.3 Implementing Controllers):

@Controller
public class ContentItemController {

    @RequestMapping("/contentitem/{id}")
    public ModelAndView contentItem(@PathVariable("id") int id) {
        ...
    }
}
Sign up to request clarification or add additional context in comments.

6 Comments

Thanks..but my project is currently set up without annotations. Any way I could get the solution without using annotations?
No. There is no ways configure extraction of path variables without annotations.
really?? wow, thats surprising to me...okay thanks for ur help!
hmm..when I try to add the @Controller annotation I get the following error: "Type mismatch: cannot convert from Controller to Annotation" not sure why this is...
Check your import s. Controller interface is org.springframework.web.servlet.mvc.Controller, @Controller annotation is org.springframework.stereotype.Controller.
|
3

try to use @RequestMapping and @PathVariable

@RequestMapping(value="/contentitem/{value}", method=RequestMethod.GET)
public String demo(@PathVariable(value="nvalue") String name, ModelMap map) {

int intValue = Integer.parseInt(nvalue);

// Do manipulation

return "something"; // Forward to something.jsp
}

Watch this Spring MVC Framework Tutorial

Comments

0

You must import org.springframework.stereotype.Controller.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.