jsp代码:
input.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>My JSP 'test.jsp' starting page</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="userAction">
     user info<input type="text"/>
     <input type="submit" value="submit"/>
   </form>
  </body>
</html>struts.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>
     <package name="struts2" extends="struts-default">
      <action name="login" class="com.xtu.struts2.LoginAction">
        <result name="success">/result.jsp</result>
      </action>
      <action name="userAction" class="com.xtu.struts2.UserAction">
       <result name="success">testOutput.jsp</result>
      </action>
     </package>
    </struts>
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">
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
转到的那个处理类com.xtu.struts2.UserAction
package com.xtu.struts2;import com.opensymphony.xwork2.ActionSupport;
import com.xtu.struts2.bean.User;public class UserAction extends ActionSupport {
    
private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}
    
public String execute() throws Exception {
// System.out.println("username:" + user.getUsername());  //这里不注释掉 要抛异常 空指针
// System.out.println("password:" + user.getPassword());  //所以肯定user是为空的
return SUCCESS;
}
}user转换类
package com.xtu.struts2.converter;
import java.util.Map;
import java.util.StringTokenizer;import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
import com.xtu.struts2.bean.User;public class UserConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Object arg0, Class arg1) {
System.out.println("Hello1");
     if(arg1 == User.class) {
    System.out.println("Hello2");
     String[] str = (String[])arg0;
     String converterValue = str[0];
     StringTokenizer tokenizer = new StringTokenizer(converterValue,":");
     String username = tokenizer.nextToken();
     String password = tokenizer.nextToken();
     User user = new User();
     user.setUsername(username);
     user.setPassword(password);
     System.out.println("Hello3");
    
     return user;
     }
     System.out.println("HelloWorld");
     return null;
};
     public Object convertValue(Map<String, Object> context, Object value,
     Class toType) {
System.out.println("Hello1");
      if(toType == User.class) {
     System.out.println("Hello2");
      String[] str = (String[])value;
      String converterValue = str[0];
      StringTokenizer tokenizer = new StringTokenizer(converterValue,":");
      String username = tokenizer.nextToken();
      String password = tokenizer.nextToken();
      User user = new User();
      user.setUsername(username);
      user.setPassword(password);
      System.out.println("Hello3");
     
      return user;
      }
      System.out.println("HelloWorld");
      return null;
    
    } 
    
    
}并在com.xtu.struts2包下配置了 UserAction-conversion.properties
user=com.xtu.struts2.converter.UserConverter但是却得不到user对象 应该根本就没有将String转换为User对象
strut2s为2.2.3.1