Sei sulla pagina 1di 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:-

Potrebbero piacerti anche