Question

Need help in Spring tutorial form controller

Asked by: cofactor

Spring  tutorial :  

Spring SimpleFormController
http://www.vaannila.com/spring/spring-simple-form-controller-1.html

Not clear yet .

I have doubt here.

see the code ...

 @SuppressWarnings("deprecation")
 public class UserController extends SimpleFormController {

  private UserService userService;

  public UserController() {
      setCommandClass(User.class); // Line 1: where this method is defined ?
      setCommandName("user");       // Line 2: where this method is defined ?
  }
   
  public void setUserService(UserService userService) {
      this.userService = userService;
  }

  @Override
  protected ModelAndView onSubmit(Object command) throws Exception {
      User user = (User) command;  
      userService.add(user);
      return new ModelAndView("userSuccess","user",user);
  }
   
// Line 1 :   where this method is defined ?

// Line 2: where this method is defined ?

// How  user object is sent  into   Object command  ?


This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-11-04 at 04:48:04ID24870662
Topics

Spring

,

Java Programming Language

,

Java Server Pages (JSP)

Participating Experts
2
Points
500
Comments
22

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Spring tutorial
    Hi, there! I am new to Spring framework. Are there some good tutorial? Are there some weblink or free PDF based book could be downloaded? With best regards, Juhani
  2. Where to fnd tutorial or examples for Spring + JSF?
    I tried by google but found little. Also looking for tutorials for Spring + JPA + Hibernate. Besides, it there topic about Spring here?
  3. Springs
    In my springapp-servlet.xml I initially named the bean hello.htm. later as I was following the tutorial on springs website I added an other bean viewresolver to it. This is bean called at helloConroller.java mentioned in the code below. After I added the new bean viewResolver...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: MRomaniPosted on 2009-11-04 at 05:33:25ID: 25739071

maybe this site can help:

http://static.springsource.org/spring/docs/3.0.0.M1/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html

setCommandClass
 
public final void setCommandClass(java.lang.Class commandClass)
 
Deprecated. 
Set the command class for this controller. An instance of this class gets populated and validated on each request. 

                                              
1:
2:
3:
4:
5:
6:

Select allOpen in new window

 

by: dravidnsrPosted on 2009-11-04 at 05:52:32ID: 25739267

<<<<<<<<<<< // Line 1: where this method is defined ?

Its a default method for ur controller !!

<<<<<<<< setCommandClass(User.class);
user.class is bean class ....

<<<<<<<<<<< setCommandName("user");

User is an customer defined command object.
U can use either command or user object in ur controller and form
U can give any name to command Class

If ur not use setCommandName("user");  then it will take  default commandName that is
command object .



<<<<<<< How  user object is sent  into   Object command  ?

U have the jsp right that properties value binded and get in the controller  purpose we are using command object

(textbox,dropdown etc values ) u can get throw command object

<spring:bind> or <form:input path="">for binding the value in jsp


<<<<<<<<< User user = (User) command;  

this is for costing the command object in to ur bean
then all bean value going to set !!


 

by: cofactorPosted on 2009-11-04 at 22:34:52ID: 25747182



>>>>User is an customer defined command object.

I am not sure why we are saying this as "command" object  ...its just a class i see....any reason to say this class as command here ?



>>>If ur not use setCommandName("user");  then it will take  default commandName that is
command object .

what is that default commandName ?  is it  just the name of the command class i.e  User  ?

>>>U have the jsp right that properties value binded and get in the controller  purpose we are using command object

Suppose , if we did not  write  setCommandName("user");  then  default commandName will work upon ....right ?   what changes will be there in this  JSP then  and also in any other configuration ( if any)?  


<form:form method="POST" commandName="user">
   <table>
   <tr>
       <td>User Name :</td>
       <td><form:input path="name" /></td>
   </tr>
   <tr>
       <td>Password :</td>
       <td><form:password path="password" /></td>
   </tr>
   <tr>
       <td>Gender :</td>
       <td>
           <form:radiobutton path="gender" value="M" label="M" />
           <form:radiobutton path="gender" value="F" label="F" />
       </td>
   </tr>
   <tr>
       <td>Country :</td>
       <td>
       <form:select path="country">
           <form:option value="0" label="Select" />
           <form:option value="1" label="India" />
           <form:option value="2" label="USA" />
           <form:option value="3" label="UK" />
       </form:select></td>
   </tr>
   <tr>
       <td>About you :</td>
       <td><form:textarea path="aboutYou" /></td>
   </tr>
   <tr>
       <td>Community :</td>
       <td>
           <form:checkbox path="community" value="Spring" label="Spring" />
           <form:checkbox path="community" value="Hibernate" abel="Hibernate" />
           <form:checkbox path="community" value="Struts" label="Struts" />
       </td>
   </tr>
   <tr>
       <td></td>
       <td>
       <form:checkbox path="mailingList" label="Would you like to join our mailinglist?" /></td>
   </tr>
   <tr>
       <td colspan="2"><input type="submit"></td>
   </tr>
   </table>
   </form:form>

    </body>
   </html>











 

by: dravidnsrPosted on 2009-11-04 at 23:57:11ID: 25747472

<<<<<<<<< I am not sure why we are saying this as "command" object ...its just a class i see....any reason to say this class as command here ?

as per spring command name is used to get the user input values from jsp in controller ..
so they are default provide one command name that is command ..

eg:

protected ModelAndView onSubmit(Object command) throws Exception

commandName is u can give any nmae like sathish ,cofactor like that u give user that it ...

<<<<<<<<<<Suppose , if we did not  write  setCommandName("user");  then  default commandName will work upon ....right ?   what changes will be there in this  JSP then  and also in any other configuration ( if any)?  


<form:form method="POST" commandName="user">

ya ur correct only it will take default command name but here in ur <form:form> does not know about ur command name so u must define the command name .

if u dont like to define means <form >

and inside use <spring:bind> u no need to define command name any where that take default command name !!

if u use <form:form> the u will define the command name ... for process purpose that want to know that !!

 


 

by: cofactorPosted on 2009-11-05 at 00:33:53ID: 25747602

Ok ...feeling more comfortable  now.

still have a doubt  in the  Spring Bean Configuration file.

..................................
....................................
<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />  

I am confused with   p namespace in the above .


They say

"...
As you can see, we use "p" namespace here. The "p" namespace is simple and easy to use. Using "p" namespace the properties can be supplied using attributes, rather than elements.  
For injecting the simple types we use property name in the "p" namespace and for injecting references we add "-ref" suffix to it. For example we use p:formView for injecting the form view property and p:userService-ref for injecting the user service. ..."

I could not understand whats this p is all about . Can you explain with examples whats this p is doing here .  It looks bit complicated to me.  



what does this mean  by "  Using "p" namespace the properties can be supplied using attributes, rather than elements"  ???? example plz



 

by: dravidnsrPosted on 2009-11-05 at 01:03:02ID: 25747714

In 2.5 and above we metion the XML shema  like this !! xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

In 2.0 we mention like this
xmlns:p=http://www.springframework.org/schema/p

but both or same meaning only ....

In 2.5 and above we mention bean like thsi eg:


<bean id="posCreateIndustryController" class="com.rockwell.ap.spras.web.controller.PosCreateIndustryController">
<property name="commandName">
<value>PosBean</value>
</property>
<property name="commandClass">
<value>
business.model.XXXMasterBean
</value>
</property>
</bean>  

 

by: cofactorPosted on 2009-11-05 at 02:18:27ID: 25748049

Not clear.

Let me post the doubt  ....

see the Bean Config File ...

<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />  


I see  p:formView="userForm"   but   in JSP there is no "userForm"   .....How its related to the jsp form then  ?



I see  p:userService-ref="userService"  ... Suppose we did write   p:userServiceref="abcdService"  instead ....if we do this wiill it still work   ?


I see  p:successView="userSuccess"   ......where  this  "userSuccess"    is used ?


 

 

by: dravidnsrPosted on 2009-11-05 at 02:31:33ID: 25748123

<<<<<<I see  p:formView="userForm"   but   in JSP there is no "userForm"   .....How its related to the jsp form then  ?

dispatcherservlet u can find userForm  if its not there means thats pgm bug ....

<<<<<I see  p:userService-ref="userService"  ... Suppose we did write   p:userServiceref="abcdService"  instead ....if we do this wiill it still work   ?

I am not aware of  spring2.0 so i dont know abt this ?? bug !!

<<<<< I see  p:successView="userSuccess"   ......where  this  "userSuccess"    is used ?

its a jsp page ... after ur all work done ur if its  success means (save or anythink) controll will return the modelandview to success page ..


 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
02.    
pageEncoding="ISO-8859-1"%> 
03.<html> 
04.<head> 
05.<title>Success Page</title> 
06.</head> 
07.<body> 
08.User Details 
09.<hr> 
10.User Name   : ${user.name} <br/> 
11.Gender      : ${user.gender} <br/> 
12.Country     : ${user.country} <br/> 
13.About You   : ${user.aboutYou} <br/> 
14.Community   : ${user.community[0]}  ${user.community[1]} ${user.community[2]}<br/> 
15.Mailing List: ${user.mailingList}  
16.</body> 
17.</html>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:

Select allOpen in new window

 

by: dravidnsrPosted on 2009-11-05 at 02:32:01ID: 25748127

Only 250 point u asking this much question yaar !!

 

by: cofactorPosted on 2009-11-05 at 03:04:34ID: 25748274

points increased to 500

 

by: dravidnsrPosted on 2009-11-05 at 03:06:48ID: 25748285

Ur welcome ...
is ur doubt is cleared ??

 

by: cofactorPosted on 2009-11-05 at 03:36:07ID: 25748436

>>dispatcherservlet u can find userForm  if its not there means thats pgm bug .

which file ? i downloaded the tutorial source code  but not sure where it could be. ....I am expecting somewhere this "userForm"   is  used ......but where ? which file to look at ?


>>>p:userService-ref="userService"

where    "userService"  is searched for ?



From tutorial  we have ....

public class UserController extends SimpleFormController {

private UserService userService;
  // is it matched  here ?

 

by: dravidnsrPosted on 2009-11-05 at 03:39:12ID: 25748448

Can u tell me this jsp name ....
as per code (formview  this jsp is the userForm)

 

by: dravidnsrPosted on 2009-11-05 at 03:39:56ID: 25748453

this jsp page ...

<form:form method="POST" commandName="user">
   <table>
   <tr>
       <td>User Name :</td>
       <td><form:input path="name" /></td>
   </tr>
   <tr>
       <td>Password :</td>
       <td><form:password path="password" /></td>
   </tr>
   <tr>
       <td>Gender :</td>
       <td>
           <form:radiobutton path="gender" value="M" label="M" />
           <form:radiobutton path="gender" value="F" label="F" />
       </td>
   </tr>
   <tr>
       <td>Country :</td>
       <td>
       <form:select path="country">
           <form:option value="0" label="Select" />
           <form:option value="1" label="India" />
           <form:option value="2" label="USA" />
           <form:option value="3" label="UK" />
       </form:select></td>
   </tr>
   <tr>
       <td>About you :</td>
       <td><form:textarea path="aboutYou" /></td>
   </tr>
   <tr>
       <td>Community :</td>
       <td>
           <form:checkbox path="community" value="Spring" label="Spring" />
           <form:checkbox path="community" value="Hibernate" abel="Hibernate" />
           <form:checkbox path="community" value="Struts" label="Struts" />
       </td>
   </tr>
   <tr>
       <td></td>
       <td>
       <form:checkbox path="mailingList" label="Would you like to join our mailinglist?" /></td>
   </tr>
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:

Select allOpen in new window

 

by: dravidnsrPosted on 2009-11-05 at 03:50:19ID: 25748505

>>>p:userService-ref="userService"

where "userService" is searched for ?

<bean id="userService" class="com.vaannila.service.UserServiceImpl" />  u can find in bean configeration xml file

 

<<<<<<< public class UserController extends SimpleFormController {

private UserService userService;   // is it matched  here ?

This for injection purpose we are define . in we are not using new operater to call another call we are using inject method only used to call another method !!

controller can find ur injected method in bean config file !!

<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />    

 

 

by: cofactorPosted on 2009-11-05 at 19:01:12ID: 25756293

Feeling  better now .... have still some more doubts in this tutorial


they said ...

in spring 3.0
>>> <bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />  

>>Using "p" namespace the properties can be supplied using attributes, rather than elements.  

But this way we can't feed  down the values  into the attributes ....is  not it ?  are not  we loosing the values in spring 3.0 for properties ?




 
But we can have the values associated for every properties as below in spring 2.5

<bean id="posCreateIndustryContr
oller" class="com.rockwell.ap.spras.web.controller.PosCreateIndustryController">
<property name="commandName">
<value>PosBean</value>
</property>
<property name="commandClass">
<value>
business.model.XXXMasterBean
</value>
</property>
</bean>      


So,  are not  we loosing the values in spring 3.0 for properties ?




 

by: dravidnsrPosted on 2009-11-05 at 22:29:47ID: 25757000

i didnt get ur question clearly ??

 

by: cofactorPosted on 2009-11-05 at 22:57:49ID: 25757158

What i meant was ...

For  
<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />  

How the values are assigned here  for properties ?


if we chose XML like element structure ( as per you example of   "posCreateIndustryContr
oller"  )
, we see there property  and  value pair....so I am worried how the values are feed ?

 

by: dravidnsrPosted on 2009-11-05 at 23:20:01ID: 25757247

>>>>>>>>>   <bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />
How the values are assigned here  for properties ?

ur class is take care of that !!

if u didnt understnad means go for this URL
 U will Know !! some ponit !!

http://www.roseindia.net/spring/helloworld.shtml

They give expalin for

p:viewName="index" />:This is the ParameterizableViewController. With the use of this controller we can view the index.
p:suffix=".jsp" />:-This is  InternalResourceViewResolver. With the use of this we can map this name to an actual jsp page.



<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userservice-ref="userService" p:formview="userForm" p:successview="userSuccess">  </bean>

 

by: dravidnsrPosted on 2009-11-05 at 23:21:30ID: 25757257

<bean name="/userRegistration.htm" class="com.vaannila.web.UserController" p:userService-ref="userService" p:formView="userForm" p:successView="userSuccess" />

this format is fllowed by spring 2.0 only not in spring 3.0

 

by: dravidnsrPosted on 2009-11-10 at 01:23:54ID: 25783696

do u clear in this ?? or shall we go for another discussion ??

 

by: cofactorPosted on 2009-11-15 at 22:49:34ID: 31649950

could be better

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...