Olá Mundo com Struts 2

2 respostas
Thiago_de_Paula_Bese

Boa noite.

Estou iniciando na prática com o framework Struts 2. Criei a classe de modelo Product no pacote raiz do Netbeans, o arquivo struts.xml no WEB-INF/classes/app02a/struts.xml, declarei o filtro do Struts 2 em WEB-INF/web.xml, Colei os jars do Struts 2 na pasta WEB-INF/lib. Tentando resolver o empecilho, removi alguns jars da pasta, seguindo uma apostila que dizia pra deixar apenas os jars necessários para a aplicação básica.

Após as declarações, LIMPEI E CONTRUI o projeto no netbeans, ate reiniciei a IDE, mas mesmo assim estou parado nesse erro que segue:

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
Desimplantando...
undeploy?path=/
OK - Undeployed application at context path /
Deployment localizado em C:\Documents and Settings\THIAGO\Desktop\ExemploStruts\build\web
deploy?config=file%3A%2FC%3A%2FDOCUME%7E1%2FTHIAGO%2FCONFIG%7E1%2FTemp%2Fcontext891916649824942743.xml&path=/
FAIL - Deployed application at context path / but context failed to start
C:\Documents and Settings\THIAGO\Desktop\ExemploStruts\nbproject\build-impl.xml:708: O módulo não foi implementado.
FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

Segue as classes e declarações XML:

//Modelo Product.java


public class Product {
    private String productName;
    private String description;
    private String price;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String execute()
    {
        //add here code to save the product to the db
        return "sucess";
    }
}

//web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>/jsp/ProductForm.jsp</welcome-file>
    </welcome-file-list>

    <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>


</web-app>


//Struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : struts.xml
    Created on : 24 de Fevereiro de 2011, 21:20
    Author     : THIAGO
    Description:
        Purpose of the document follows.
-->

<!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.enable.DynamicMethodInvocation" value="false"/>
    <constant name="struts.devMode" value="true"/>
    <package name="app02a" namespace="/" extends="struts-default">
        <action name="Product_Input">
            <result>/jsp/ProductForm.jsp</result>
        </action>

        <action name="Product_save" class="Product">
            <result>/jsp/ProductDetails.jsp</result>
        </action>
    </package>
</struts>

Lembrando que não fiz ainda ProductDetails.jsp. Acho que não é esse o empecilho.

Pessoal, desde já agradeço. :smiley:

2 Respostas

A

Está estranha sua action…

<action name="Product_save" class="Product"> <result>/jsp/ProductDetails.jsp</result> </action>

Seu método possui erro de digitacao, é SUCCESS… ou “success”…

public String execute() { //add here code to save the product to the db return "sucess"; }

Sua action acima deveria retornar “success”:

<result type="success">/jsp/ProductDetails.jsp</result>
Thiago_de_Paula_Bese

andredecotia:
Está estranha sua action…

<action name="Product_save" class="Product"> <result>/jsp/ProductDetails.jsp</result> </action>

Seu método possui erro de digitacao, é SUCCESS… ou “success”…

public String execute() { //add here code to save the product to the db return "sucess"; }

Sua action acima deveria retornar “success”:

<result type="success">/jsp/ProductDetails.jsp</result>

Boa tarde amigo.
Já estou agradecido pela tentativa de ajuda, MAS.

É o seguinte.

A unica coisa que concordo com voce até o momento é eu ter digitado sucess no lugar de success.

Segundo o livro de struts que estou lendo, Um elemento Result por padrão ja vem com o atributo NAME=“success”, e nao type=“success” (creio que voce confundiu).

Eis um exemplo: os 2 results fazem a mesma coisa.

<result name="success"  type="dispatcher">/jsp/Confirm.jsp</result>
<result>/jsp/Confirm.jsp</result>

Resumindo: por Default, <result> vem com atributos com name="success" e type="dispatcher", não sendo necessário declará-los.

MAS De volta ao problema que tenho

Estou com problemas para rodar o struts 2 no Netbeans. Perco mais meu tempo com configuração do que propriamente aprendendo o framework.

Se alguem souber qual problema, fico grato pela atenção.

Valeu galera… :slight_smile:

Criado 24 de fevereiro de 2011
Ultima resposta 25 de fev. de 2011
Respostas 2
Participantes 2