icewind2048 2011-10-01 10:52
浏览 159
已采纳

关于struct2转换器的问题,报nullpointerexception的错,不知为啥,查了好几遍了

beans

package com.windvalley.beans;

public class UserInfo {
    private String userName;
    
    private String passWord;

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getPassWord() {
        return passWord;
    }
}

 转换器

package com.windvalley.converter;

import java.util.Map;
import java.util.StringTokenizer;

import com.windvalley.beans.UserInfo;

import ognl.DefaultTypeConverter;

public class UserinfoConverter extends DefaultTypeConverter {

    @Override
    public Object convertValue(Map context, Object value, Class toType) {
        // TODO Auto-generated method stub
        if (UserInfo.class == toType)       //页面向后台对象转换
        {
            String[] str = (String[])(value);
            
            String firstValue = str[0];
            
            StringTokenizer st = new StringTokenizer(firstValue, ";");
            
            String userName = st.nextToken();
            
            String passWord = st.nextToken();
            
            UserInfo userInfo = new UserInfo();
            
            userInfo.setUserName(userName);
            userInfo.setPassWord(passWord);
            
            return userInfo;
        }
        else {
            return null;
        }
    }
}

 action

package com.windvalley.struts2;

import com.opensymphony.xwork2.ActionSupport;
import com.windvalley.beans.UserInfo;

public class UserInfoAction extends ActionSupport {
    private UserInfo userInfo;

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        System.out.print(userInfo.getUserName());
        System.out.print(userInfo.getPassWord());
        return SUCCESS;
    }
}

 UserInfoAction-conversion.properties

userInfo=com.windvalley.converter.UserinfoConverter

 Struct

<?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>
    <package name="struts2" extends="struts-default" namespace="/">
        <action name="userinfo" class="com.windvalley.struts2.UserInfoAction" >
            <result name="success">/userinfo.jsp</result>
        </action>
    </package>
</struts>

 login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Struct2 Login</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  
  <body>
    <form action="userinfo.action">
        <h1>demo: userInfo</h1><br>
        userInfo: <input type="text" name="userinfo" /> <br>
        <input type="submit" value="submit">
    </form>
  </body>
</html>

 用的dtd是2.1

报错为

java.lang.NullPointerException
    com.windvalley.struts2.UserInfoAction.execute(UserInfoAction.java:25)
  • 写回答

2条回答 默认 最新

  • blueram 2011-10-01 15:04
    关注

    不用转换的,这样写
    [code="html"]

    demo: userInfo


    username:
    password:

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序