小弟我初学struts2 希望大家指点一下 , 为什么我的Action 接不到表单中的值???
ajaxlogin.jsp 页面<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<s:head theme="ajax" debug="true"/>
</head>
<body>
<s:div id="loginDiv" theme="ajax">
<div style="width: 300px;border-style: solid">
<s:form action="ajaxLogin" validate="true">
<tr>
<td colspan="2">
Login
<td>
<tr>
<tr>
<td colspan="2">
<s:actionerror />
<s:fielderror />
<td>
<tr>
<s:textfield name="username" label="Login name"/>
<s:password name="password" label="Password"/>
<s:submit theme="ajax" targets="loginDiv" notifyTopics="/ajaxLogin"/>
</s:form>
</div>
</s:div>
</body>
</html> 为什么我的Action 接不到值?import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
/**
* Validate a user login.
*/
public class Login extends ActionSupport {
public String execute() throws Exception {
System.out.println("Validating login ... ...");
System.out.println("User = " + getUsername()); // 输出为NULL
System.out.println("Pass = " + getPassword()); // 输出为NULL
if (!getUsername().equals("Admin") || !getPassword().equals("Admin")) {
System.out.println("Validating error ! User = " + getUsername());
addActionError("Invalid user name or password! Please try again!");
return ERROR;
} else {
System.out.println("Validating success !");
return SUCCESS;
}
}
// ---- Username property ----
/**
* Field to store User username.
*/
private String username = null;
// ---- Username property ----
/**
* Field to store User password.
*/
private String password = null;
public String getPassword() {
return password;
}
public void setPassword(String value) {
password = value;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
}
ajaxlogin.jsp 页面<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<s:head theme="ajax" debug="true"/>
</head>
<body>
<s:div id="loginDiv" theme="ajax">
<div style="width: 300px;border-style: solid">
<s:form action="ajaxLogin" validate="true">
<tr>
<td colspan="2">
Login
<td>
<tr>
<tr>
<td colspan="2">
<s:actionerror />
<s:fielderror />
<td>
<tr>
<s:textfield name="username" label="Login name"/>
<s:password name="password" label="Password"/>
<s:submit theme="ajax" targets="loginDiv" notifyTopics="/ajaxLogin"/>
</s:form>
</div>
</s:div>
</body>
</html> 为什么我的Action 接不到值?import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
/**
* Validate a user login.
*/
public class Login extends ActionSupport {
public String execute() throws Exception {
System.out.println("Validating login ... ...");
System.out.println("User = " + getUsername()); // 输出为NULL
System.out.println("Pass = " + getPassword()); // 输出为NULL
if (!getUsername().equals("Admin") || !getPassword().equals("Admin")) {
System.out.println("Validating error ! User = " + getUsername());
addActionError("Invalid user name or password! Please try again!");
return ERROR;
} else {
System.out.println("Validating success !");
return SUCCESS;
}
}
// ---- Username property ----
/**
* Field to store User username.
*/
private String username = null;
// ---- Username property ----
/**
* Field to store User password.
*/
private String password = null;
public String getPassword() {
return password;
}
public void setPassword(String value) {
password = value;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
}
如果一直得不到,不知道,
如果第一次得到然后就得不到了,可以提交时加个temp=new Date().getTime();
警告: Parameters: Invalid chunk ignored.
Validating login ... ...
User = null
Pass = null
2009-3-18 11:33:45 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at net.roseindia.Login.execute(Login.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)