iteye_265 2011-08-11 11:33
浏览 339
已采纳

Struts2.0 页码传值到Action的问题

我的Action总是取不到页面传的值是为什么?
我的web.xml配置如下:
[code="xml"]
<?xml version="1.0" encoding="UTF-8"?>

<display-name>PGProject</display-name>

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>


sitemesh
com.opensymphony.sitemesh.webapp.SiteMeshFilter

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>    

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
<listener>
    <listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>
</listener>    

 <servlet>
    <servlet-name>sitemesh-freemarker</servlet-name>
    <servlet-class>org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</servlet-class>
    <init-param>
        <param-name>default_encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>sitemesh-freemarker</servlet-name>
    <url-pattern>*.ftl</url-pattern>
</servlet-mapping>   

<welcome-file-list>
    <welcome-file>Login.action</welcome-file>
</welcome-file-list>


[/code]
页面代码如下:
[code="html"]
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>


登录

用户名:
密码:



[/code]
Action代码如下:
[code="java"]
package cn.com.pzhsteel.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import cn.com.pzhsteel.pojo.JUser;
import cn.com.pzhsteel.service.UserService;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport
{

/**
 * 
 */
private static final long serialVersionUID = 1L;
private JUser user;
private UserService myService;
public String execute()throws Exception
{
    System.out.println("fdsafdsafdsafdsafdsaf");
    return SUCCESS;
}
public String checkUser() throws Exception
{
    HttpServletRequest request = ServletActionContext.getRequest();
    String flag=request.getParameter("user.name");
    if(myService == null)
        return "error";
    else
    {
        if(user == null)
        {
            user = new JUser();
            user.setName("test");
            user.setPassword("12345");
        }
        if(myService.isUser(user))
            return "success";
        else
            return "unsuccess";
    }
}

public JUser getUser()
{
    return user;
}

public void setUser(JUser user)
{
    this.user = user;
}

public void setMyService(UserService myService)
{
    this.myService = myService;
}

}
[/code]
POJO类代码如下:
[code="java"]
public class JUser
{
private String name;
private String password;
private String sysId;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getSysId()
{
return sysId;
}
public void setSysId(String sysId)
{
this.sysId = sysId;
}
}
[/code]
Struts2配置如下:
[code="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">

<!-- Some or all of these can be flipped to true for debugging -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="false"/>
<constant name="actionPackages" value="cn.com.pzhsteel.action"/>
<package name="default" namespace="/" extends="struts-default">

    <interceptors>
        <interceptor-stack name="crudStack">
          <interceptor-ref name="checkbox" />
            <interceptor-ref name="params" />
            <interceptor-ref name="staticParams" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
    </interceptors>

    <default-action-ref name="Login" />

    <!--global-results>
        <result name="error">/error.jsp</result>
    </global-results-->

    <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="error"/>
    </global-exception-mappings>

    <action name="Login">
        <result>Login.jsp</result>
    </action>
    <action name="userAction" class="userAction" method = "checkUser">
        <result name="success">/Login.jsp</result>
        <result name="unsuccess">/error.jsp</result>
    </action>

</package>

[/code]
可User对象使中获取不到值?为什么呀?????

  • 写回答

3条回答 默认 最新

  • myali88 2011-08-11 12:02
    关注

    你把
    [code="java"]

    [/code]
    改成
    [code="java"] [/code]
    再试试。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘