Struts 2 Store User Input Details In Separate Java Bean
|
Struts »
On Oct 23, 2011 | { 5 Comments }
|
Tweet
|
Let us see how to store user input details in the separate bean, actually up to now we stored user input values in Action class by writing setters and getter methods, but there is a chance to store in separate bean class, will see how.
Advantage Of Taking Separate Java Bean
Is to get re-usability, means if more than one Action class need to use the same properties then same properties we can use from this java bean it self with out wiring setters and getters in both Action classes.
Any ways files required…
- success.jsp
- error.jsp
- index.jsp
- LogingEx.java [ in java4s package ]
- MyBean.java [ in java4s package ]
- web.xml [ in web-inf ]
- struts.xml [ in web-inf/classes folder ]
Directory Structure
![]() |
![]() |
index.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <s:form action="verify"> <s:textfield name="beanobject.uname" label="Enter Username" /><br> <s:textfield name="beanobject.age" label="Enter Age" /><br> <s:textfield name="beanobject.sex" label="sex" /><br> <s:submit value="Click" align="center" /> </s:form> </body> </html>
success.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> Hello <s:property value="beanobject.uname" /> Your age is: <s:property value="beanobject.age" /> and sex : <s:property value="beanobject.sex" />
error.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> This is error page...!!!!
LogingEx.java
package java4s;
import com.opensymphony.xwork2.ActionSupport;
public class LogingEx extends ActionSupport{
private static final long serialVersionUID = 1L;
private MyBean beanobject;
public MyBean getBeanobject() {
return beanobject;
}
public void setBeanobject(MyBean beanobject) {
this.beanobject = beanobject;
}
public String execute()
{
return SUCCESS;
}
}
MyBean.java
package java4s;
public class MyBean{
private static final long serialVersionUID = 1L;
private String uname,sex;
private int age;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="a" extends="struts-default"> <action name="verify" class="java4s.LogingEx"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> </struts>
After Execution
![]() |
![]() |
Output
![]() |
![]() |
|
What you are thinkig....
5 Responses to “Struts 2 Store User Input Details In Separate Java Bean”
If you want a pic to show with your comment, go get a gravatar !
Please post your questions on Java4s Answers forum





Hello Java4s,
Thanks for all your support to learn the latest technologies of JAVA.
Please provide theory part also which describes each line of code as how you provided in the hibernate tutorial.
Thanks & Regards:
Mohammed Vaseem
hello java4s,
http://www.java4s.com/struts-tutorials/struts-2-store-user-input-details-in-separate-java-bean/
in the above example in the index.jsp file you have written the textfield name as (beanobject.uname),is it mandatory that we need to write all the parameter names in the form of (beanclass reference.somename)
i have tried writing it as just uname in index.jsp and the same in success.jsp .but i couldn’t retrieve the values wen i run it…
@Saikrishna
Yeah its mandatory
See beanobject.uname, here beanobject is the object of bean class created in Action class (line number 7).
those names must be same, then only internal mapping will be done.
When i am running my application, in index.jsp page it is displaying error like:
Java backtrace for programmers:
———-
freemarker.core.NonStringException: Error on line 26, column 13 in template/simple/dynamic-attributes.ftl
Expecting a string, date or number here, Expression parameters.dynamicAttributes[aKey] is instead a freemarker.ext.beans.SimpleMethodModel at freemarker.core.Expression.getStringValue(Expression.java:126)
i don’t why it is giving this error,
can any one help in this…..please…….
How can i validate bean object properties?