2016-09-28 6 views
0

Ich habe eine Beispielanwendung erstellt, um struts2 mit liveray zu integrieren. Das Problem tritt jedoch auf, wenn die Setter-Methode in der Action-Klasse nicht aufgerufen wird. Ich übergebe Parameter über das Struts-Formular an die Action-Klasse, aber wenn ich diese Werte über welcome.jsp drucke, bekomme ich Werte wie Null für name und 0 für id. Hier ist mein Code für Form: -Integration von Struts2 mit Liferay?

<%@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"> 
<%@taglib uri="/struts-tags" prefix="s" %> 

<s:form action="product"> 
<s:textfield name="id" label="Product Id"></s:textfield> 
<s:textfield name="name" label="Product Name"></s:textfield> 
<s:textfield name="price" label="Product Price"></s:textfield> 
<s:submit value="save"></s:submit> 
</s:form> 

Der Code für struts.xml ist wie folgt: -

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts 
Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 
<struts> 
<constant name="struts.objectFactory.spring.autoWire" value="type" /> 
<package name="view" namespace="/view" extends="struts-portlet-default"> 

    <action name="product" class="com.abhishek.Product" method="execute"> 

<result name="success">/welcome.jsp</result> 
</action> 

<action name="index" 
      class="com.abhishek.Product"> 
      <result name="success">/index.jsp</result> 
     </action> 


</package> 

</struts> 

Der Code für Product.java ist wie folgt: -

package com.abhishek; 

import com.opensymphony.xwork2.ActionContext; 
import com.opensymphony.xwork2.ActionSupport; 

import javax.servlet.http.HttpServletRequest; 

import org.apache.struts2.interceptor.ServletRequestAware; 

public class Product extends ActionSupport implements ServletRequestAware { 
/** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
/** 
    * 
    */ 
    HttpServletRequest request; 
    private int id; 
private String name; 
private float price; 
public int getId() { 
    return id; 
} 
public void setId(int id) { 
    this.id = id; 
} 
public String getName() { 
     return name; 
} 
public void setName(String name) { 
    System.out.println("Inside setName"); 
    this.name = name; 
} 
public float getPrice() { 
    return price; 
} 
public void setPrice(float price) { 
    this.price = price; 
} 

public String execute(){ 
    System.out.println("name is"+ ActionContext.getContext().getParameters().get("name")); 
    System.out.println("name="+name); 
    return "success"; 
} 

public String execute1(){ 
    return "success"; 
} 
@Override 
public void setServletRequest(HttpServletRequest request) { 
    // TODO Auto-generated method stub 
    this.request=request; 
} 

public HttpServletRequest getServletRequest() 
{ 
    return this.request; 
} 

} 

Der Code für welcome.jsp lautet wie folgt: -

<%@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"> 
<%@ taglib uri="/struts-tags" prefix="s" %> 

Product Id:<s:property value="id"/><br/> 
Product Name:<s:property value="name"/><br/> 
Product Price:<s:property value="price"/><br/> 

Ich möchte fragen, ob es wirklich möglich ist, die Anwendung struts2 mit liveray zu integrieren, und wenn ja, warum wird die Setter-Methode nicht aufgerufen? Ich habe bereits einige Anwendungen in struts2 in liveray gemacht, kam aber mit demselben Problem ... Also bitte helfen ..eine Hilfe würde geschätzt werden.

Antwort

0

Versuchen Sie, den Parameterwert zu prüfen, ohne die Methode getParameter ("yourParameter") zu lesen. Überprüfen Sie, ob sie korrekt gedruckt sind, andernfalls ist Ihr Modell selbst nicht richtig initialisiert.

+0

ich habe das schon getan und das Modell ist nicht initialisiert..das, was ich wissen will, warum ist das Modell nicht initialisiert? Warum werden Setter-Methoden nicht aufgerufen, um das Modell zu initialisieren? Bitte helfen Sie ... im Voraus. –

+0

Was ist die Arbeitsumgebung, ich meine Java-Version und struts2 und Server? Denn das lässt auch mal etwas schief gehen. –