0% found this document useful (0 votes)
73 views

Code and Output For Journal

This document describes a stateless enterprise bean based calculator application and a stateful enterprise bean based banking application. The calculator application uses a stateless session bean to perform basic math operations like addition, subtraction, multiplication and division. It has a JSP page to accept input from the user and submit to a servlet, which then calls methods on the calculator bean and displays the results. The banking application uses a stateful session bean to manage banking operations like deposit, withdraw and check balance. It has JSP pages to open an account, select a transaction and display processing results. The processing is handled by calling methods on the stateful bean instance retrieved from the user's session. A message driven bean demo

Uploaded by

Ronny
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Code and Output For Journal

This document describes a stateless enterprise bean based calculator application and a stateful enterprise bean based banking application. The calculator application uses a stateless session bean to perform basic math operations like addition, subtraction, multiplication and division. It has a JSP page to accept input from the user and submit to a servlet, which then calls methods on the calculator bean and displays the results. The banking application uses a stateful session bean to manage banking operations like deposit, withdraw and check balance. It has JSP pages to open an account, select a transaction and display processing results. The processing is handled by calling methods on the stateful bean instance retrieved from the user's session. A message driven bean demo

Uploaded by

Ronny
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 39

Stateless Enterprise Bean based Calculator Bean

index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Calculator</title>
</head>
<body>
<h1>EJB Calculator</h1>
<form method="post" action="CalculatorFormServlet">
<table>
<tr>
<td>Enter Value of Number1</td>
<td><input type="text" name="number1"></td>
</tr>
<tr>
<td>Enter Value of Number2</td>
<td><input type="text" name="number2"></td>
</tr>
<tr>
<td><input type="submit" value="Submit"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>

CalculatorBean.java
package calcejb;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
@Stateless
@LocalBean
public class CalculatorBean {
public int add(int number1,int number2) {
return number1+number2;
}
public int subtract(int number1,int number2) {
return number1-number2;

}
public int multiply(int number1,int number2) {
return number1*number2;
}
public int divide(int number1,int number2) {
return number1/number2;
}
}
CalculatorFormServlet.java
import calcejb.CalculatorBean;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
//import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="CalculatorFormServlet", urlPatterns={"/CalculatorFormServlet"})
public class CalculatorFormServlet extends HttpServlet {
@EJB
private CalculatorBean calculatorBean;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
int number1=Integer.parseInt(request.getParameter("number1"));
int number2=Integer.parseInt(request.getParameter("number2"));
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>CalculatorFormServlet</title>");
out.println("</head>");
out.println("<body>");

out.println("<h1>Addition of Number1 and Number2 =


"+calculatorBean.add(number1, number2)+"</h1>");
out.println("<h1>Subtraction of Number1 and Number2 =
"+calculatorBean.subtract(number1, number2)+"</h1>");
out.println("<h1>Multiplication of Number1 and Number2 =
"+calculatorBean.multiply(number1, number2)+"</h1>");
out.println("<h1>Division of Number1 and Number2 =
"+calculatorBean.divide(number1, number2)+"</h1>");
out.println("Click<a href=index.jsp>Here</a>to go back");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}

Statefull Enterprise Beam based Banking Operations Bean


index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SIES Bank</title>
</head>
<body>
<form action="openaccount" method="post">
<h1>Welcome to SIES Bank</h1>
<br><br>
First Name : <input type="text" name="fname">
<br>
Last Name : <input type="text" name="lname">
<br>
<input type="submit" value="Go">
</form>
</body>
</html>
Operations.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SIES Bank</title>
</head>
<body>
<center><h1>Welcome to SIES Bank</h1></center>
<br><br><br>
<form action="transaction">
Enter Amount to be transacted : <input type="text" name="amount">
<br><br>
<h3>Choose the operation</h3>
<br><br>
<input type="radio" name="transaction" value="deposit">Deposit Amount<br>
<input type="radio" name="transaction" value="withdraw">Withdraw Amount<br>
<input type="radio" name="transaction" value="balance">Get Balance
Amount<br>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
processing.jsp
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SIES Bank</title>
</head>
<body>
<%@page import="ejbstatefull.*" %>
<%
BeanRemote remote= (BeanRemote)session.getAttribute("remote");
String choice=request.getParameter("transaction");
int amt=0;
if(choice!=null){
if(choice.equals("deposit"))
{
amt=Integer.parseInt(request.getParameter("amount"));
remote.depositAmount(amt);
out.println("Amount successfully deposited");
}
else if(choice.equals("withdraw"))
{
amt=Integer.parseInt(request.getParameter("amount"));
boolean k=remote.withdrawAmount(amt);
if(k==false)
out.println("Amount cannnot be withdrawn. Insufficient Balance");
else
out.println("Amount Successfully Withdrawn");
}
else if(choice.equals("balance"))
{
int a=remote.getBalance();
out.println("Amount in your account is "+a);
}
%>

<br><br><br><br>
<jsp:include page="operations.jsp"></jsp:include>

</body>
</html>
Bean.java
package ejbstatefull;

import javax.ejb.Stateful;
@Stateful (mappedName="beanjava")
public class Bean implements BeanRemote {
int amount=0;
public void depositAmount(int amt) {
}

amount=amount+amt;

public boolean withdrawAmount(int amt) {

if(amt<amount){
amount=amount-amt;
return true;
}
return false;

}
public int getBalance() {
return amount;
}

}
BeanRemote.java
package ejbstatefull;

import javax.ejb.Remote;
@Remote
public interface BeanRemote {
void depositAmount(int amt);
boolean withdrawAmount(int amt);
int getBalance();
}
openaccount.java
package bean;
import
import
import
import
import
import
import
import

ejbstatefull.BeanRemote;
java.io.IOException;
java.io.PrintWriter;
javax.naming.InitialContext;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;

public class openaccount extends HttpServlet {


protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
InitialContext ic=new InitialContext();
BeanRemote br=(BeanRemote)ic.lookup("beanjava");
request.getSession().setAttribute("remote",br );
request.getRequestDispatcher("operations.jsp").forward(request, response);
}
catch(Exception e){

}
finally {
out.close();
}
transaction.java Servlet
package bean;
import
import
import
import
import
import

java.io.IOException;
java.io.PrintWriter;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;

public class transaction extends HttpServlet {


protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
request.getRequestDispatcher("processing.jsp").forward(request, response);
}

Message Driven Bean Demo


index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Page</title>
</head>
<body>
<h1>Message Bean Testing</h1>
<form action="mbServlet">
<table>
<tr>
<td>Your Message :</td>
<td><input type="text" name="msg" value="" size="30"/></td>
</tr>
<tr>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
MBean1.java
package mb;
import
import
import
import
import
import
import
import

java.util.logging.Level;
java.util.logging.Logger;
javax.ejb.ActivationConfigProperty;
javax.ejb.MessageDriven;
javax.jms.JMSException;
javax.jms.Message;
javax.jms.MessageListener;
javax.jms.TextMessage;

@MessageDriven(mappedName = "jms/dest", activationConfig = {


@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue =
"Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue =
"javax.jms.Queue")
})
public class MBean1 implements MessageListener {
public MBean1() {
}
public void onMessage(Message message) {
TextMessage tmsg=null;
tmsg=(TextMessage)message;

try {
System.out.println(tmsg.getText());
} catch (JMSException ex) {
Logger.getLogger(MBean1.class.getName()).log(Level.SEVERE, null, ex);
}

}
mbServlet.java
package mb;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

java.io.IOException;
java.io.PrintWriter;
java.util.logging.Level;
java.util.logging.Logger;
javax.annotation.Resource;
javax.jms.Connection;
javax.jms.ConnectionFactory;
javax.jms.JMSException;
javax.jms.Message;
javax.jms.MessageProducer;
javax.jms.Queue;
javax.jms.Session;
javax.jms.TextMessage;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;

public class mbServlet extends HttpServlet {


@Resource(name = "jms/dest")
private Queue dest;
@Resource(name = "jms/queue")
private ConnectionFactory queue;
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String str=request.getParameter("msg");
try {
sendJMSMessageToDest(str);
} catch (JMSException ex) {
Logger.getLogger(mbServlet.class.getName()).log(Level.SEVERE, null, ex);
}

try {
out.println("<html>");
out.println("<head>");

out.println("<title>Servlet mbServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Your Message " + str + "has been sent to the Server!!! Pls check
the log</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
private Message createJMSMessageForjmsDest(Session session, Object messageData)
throws JMSException {
// TODO create and populate message to send
TextMessage tm = session.createTextMessage();
tm.setText(messageData.toString());
return tm;
}
private void sendJMSMessageToDest(Object messageData) throws JMSException {
Connection connection = null;
Session session = null;
try {
connection = queue.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(dest);
messageProducer.send(createJMSMessageForjmsDest(session, messageData));
} finally {
if (session != null) {
try {
session.close();
} catch (JMSException e) {
Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "Cannot
close session", e);
}
}
if (connection != null) {
connection.close();
}
}
}

Entity Bean Demo through Java Persistence API (JPA)


index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HR Department</title>
</head>
<body>
<h1>Hello World!</h1>
<form action="empServlet">
<table>
<tr>
<td>Employee Name</td>
<td><input type="text" name="ename"></td>
</tr>
<tr>
<td>Salary</td>
<td><input type="text" name="esalary"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Submit"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
empServlet.java
package ebd;
import
import
import
import
import
import
import
import
import

ejpa.Employee;
ejpa.EmployeeFacadeLocal;
java.io.IOException;
java.io.PrintWriter;
javax.ejb.EJB;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;

public class empServlet extends HttpServlet {


@EJB
private EmployeeFacadeLocal employeeFacade;

protected void processRequest(HttpServletRequest request, HttpServletResponse


response)
throws ServletException, IOException {

Employee obj=new Employee();


obj.setName(request.getParameter("ename"));
obj.setSalary(Integer.parseInt(request.getParameter("esalary")));
employeeFacade.create(obj);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>HR Department</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> New Employee " + request.getParameter("ename") + "Created
Successfully</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}

}
Employee.java
package ejpa;
import
import
import
import
import

java.io.Serializable;
javax.persistence.Entity;
javax.persistence.GeneratedValue;
javax.persistence.GenerationType;
javax.persistence.Id;

@Entity
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
String name;
int salary;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}

public void setSalary(int salary) {


this.salary = salary;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Employee)) {
return false;
}
Employee other = (Employee) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "ejpa.Employee[id=" + id + "]";
}
}
EmployeeFacade.java
package ejpa;
import
import
import
import
import
import
import

java.util.List;
javax.ejb.Stateless;
javax.persistence.EntityManager;
javax.persistence.PersistenceContext;
javax.persistence.Query;
javax.persistence.criteria.CriteriaQuery;
javax.persistence.criteria.Root;

@Stateless
public class EmployeeFacade implements EmployeeFacadeLocal {
@PersistenceContext(unitName = "EntityBeanDemo-ejbPU")
private EntityManager em;

public void create(Employee employee) {


em.persist(employee);
}
public void edit(Employee employee) {
em.merge(employee);
}
public void remove(Employee employee) {
em.remove(em.merge(employee));
}
public Employee find(Object id) {
return em.find(Employee.class, id);
}
public List<Employee> findAll() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Employee.class));
return em.createQuery(cq).getResultList();
}
public List<Employee> findRange(int[] range) {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Employee.class));
Query q = em.createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
public int count() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
Root<Employee> rt = cq.from(Employee.class);
cq.select(em.getCriteriaBuilder().count(rt));
Query q = em.createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
}
}
EmployeeFacadeLocal.java
package ejpa;
import java.util.List;
import javax.ejb.Local;
@Local
public interface EmployeeFacadeLocal {
void create(Employee employee);
void edit(Employee employee);

void remove(Employee employee);


Employee find(Object id);
List<Employee> findAll();
List<Employee> findRange(int[] range);
int count();
}

Internationalization in Struts2
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Employee Form with multilingual Support</title>
</head>
<body>
<h1><s:text name="global.heading"></s:text></h1>
<s:url id="indexEN" action="Locale">
<s:param name="request_locale">en</s:param>
</s:url>
<s:url id="indexES" action="Locale">
<s:param name="request_locale">es</s:param>
</s:url>
<s:url id="indexHI" action="Locale">
<s:param name="request_locale">hi</s:param>
</s:url>
<s:a href="%{indexEN}">English</s:a>
<s:a href="%{indexES}">Spanish</s:a>
<s:a href="%{indexHI}">Hindi</s:a>
<s:form action="Employee" method="post">
<s:textfield name="name" key="global.name" size="20"></s:textfield>
<s:textfield name="age" key="global.age" size="20"></s:textfield>
<s:submit name="submit" key="global.submit"></s:submit>
</s:form>
</body>
</html>
success.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Success</title>
</head>
<body>
<h1><s:property value="getText('global.success')"></s:property></h1>
</body>
</html>

Employee.java
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class Employee extends ActionSupport{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
Locale.java
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class Locale extends ActionSupport{
@Override
public String execute(){
return SUCCESS;
}
}
sturts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<constant name="struts.devMode" value="true"></constant>


<constant name="struts.custom.i18n.resources" value="global"></constant>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default" namespace="/">
<action name="Employee" class="com.action.Employee" method="execute">
<result name="input">/index.jsp</result>
<result name="success">/success.jsp</result>
</action>
<action name="Locale" class="com.action.Locale" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
global.properties
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.
global.name=Name
global.age=Age
global.submit=Submit
global.heading=Fill this form
global.success=Successfully Authenticated

Struts2 based Web Application with Data Base connectivity


index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>
<s:form action="LoginAction">
<s:textfield name="username" label="Username"></s:textfield>
<s:password name="password" label="Password"></s:password>
<s:submit name="submit" label="Login"></s:submit>
</s:form>
</body>
</html>

success.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Successful Login</title>
</head>
<body>
<h1>Hello!!<s:property value="name"></s:property></h1>
</body>
</html>
error.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Invalid User</title>
</head>
<body>
<h1>Wrong Password provided</h1>
</body></html>
LoginAction.java

package com.action;
import
import
import
import

static com.opensymphony.xwork2.Action.ERROR;
static com.opensymphony.xwork2.Action.SUCCESS;
com.opensymphony.xwork2.ActionSupport;
java.sql.*;

public class LoginAction extends ActionSupport{


private String username;
private String password;
private String name;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String execute(){
String ret=ERROR;
Connection conn=null;
try{
String url="jdbc:mysql://localhost/strutsdb";
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url,"root","");
String sql="SELECT name FROM emplogin WHERE username=? AND
password=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);

ResultSet rs=ps.executeQuery();
while(rs.next()){
name=rs.getString(1);
ret=SUCCESS;
}
}
catch(Exception e){
ret=ERROR;
}
finally{
if(conn!=null){
try{
conn.close();
}
catch(Exception e){
}
}
}
return ret;
}
}
struts.xml
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<action name="LoginAction" class="com.action.LoginAction"
method="execute">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>

Create a structs2 program using validators in xml for employee information


index.jsp:<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Employee Form</title>
</head><body>
<s:form action="empinfo" method="post">
<s:textfield name="name" label="Name" size="20" />
<s:textfield name="age" label="Age" size="20" />
<s:submit name="submit" label="Submit" align="center" />
</s:form></body></html>
success.jsp:<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>Success</title>
</head>
<body>
Employee Information is captured successfully.
</body>
</html>
employee.java:package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class Employee extends ActionSupport{
private String name;
private int age;
@Override
public String execute() {
return SUCCESS; }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setA ge(int age) {

this.age = age;
}
@Override
public void validate() {
if (name == null || name.trim().equals(""))
{
addFieldError("name","The name is required");
}
if (age < 28 || age > 65)
{
addFieldError("age","Age must be in between 28 and 65");
} } }
structs.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>
<constant name="struts.devMode" value="true" />
<package name="helloworld" extends="struts-default">
<action name="empinfo"
class="com.tutorialspoint.struts2.Employee"
method="execute">
<result name="input">/index.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package></struts>

Output:-

Employee-validation.xml:<!DOCTYPE validators PUBLIC


"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="required">
<message>
The name is required.
</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">29</param>
<param name="max">64</param>
<message>
Age must be in between 28 and 65
</message>
</field-validator>
</field>
</validators>

Create a Sample Structs2 Program For RedirectAction


Index.jsp:
<html><head>
<title>Hello World</title></head>
<body> <h1>Redirect Action</h1>
<form action="NewWorld.jsp">
<label for="name">Please enter your name</label><br/>
<s:textfield name="name" label="Name" size="20" />
<s:textfield name="age" label="Age" size="20" />
<s:submit name="submit" label="Submit" value="Enter" align="left"/>
</form></body></html>

NewWorld.jsp:<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Redirect Action</h1>
<form action="NewWorld.jsp">
<label for="name">Please enter your name</label><br/>
<s:textfield name="name" label="Name" size="20" />
<s:textfield name="age" label="Age" size="20" />
<s:submit name="submit" label="Submit" value="Enter" align="left"/>
</form>
</body>
</html>
HelloWorldAction.java:package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
private String name;
private int age;
@Override
public String execute() throws Exception
{
return "success";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{

return age;
}
public void setAge(int age) {
this.age = age;
}
Structs.xml:<struts>
<constant name="struts.devMode" value="true" />
<package name="helloworld" extends="struts-default">
<action name="hello"
class="com.tutorialspoint.struts2.HelloWorldAction"
method="execute">
<result name="success" type="redirect">
<param name="location">
/NewWorld.jsp
</param >
</result>
</action>
<action name="index">
<result >/index.jsp</result>
</action>
</package>
</struts>

Output:-

You might also like