I'm trying the WebWork2 and I follow the Quick Start Guide to do. The
program is successful to compile. But I found that the form parameter
didn't set to LoginAction. After I add the debug message. I found that
the variables, username and password, are null. hasErrors() is report
true. Pls advise and Thank you very much.
login.jsp
=========
<%@ taglib prefix="ww" uri="webwork" %>
<%@ include file="includes/header.inc" %>
<ww:form name="'myForm'" action="'loginAction.action'" method="'post'">
<ww:textfield label="'username'" name="'username'"></ww:textfield>
<ww:password label="'password'" name="'password'"></ww:password>
<input type="submit" value="Login">
</ww:form>
<%@ include file="includes/footer.inc" %>
LoginAction.java
================
package com.myproject.action;
import java.util.Map;
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
import org.jboss.security.auth.callback.UsernamePasswordHandler;
/**
* @author thomas
*
* To change the template for this generated type comment go to Window -
* Preferences - Java - Code Generation - Code and Comments
*/
public class LoginAction extends ActionSupport {
protected String username;
protected String password;
public Subject subject;
public void setUsername(String username) {
System.out.println(username);
this.username = username;
}
public String getUsername() {
return this.username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
System.out.println(password);
this.password = password;
}
public Subject getSubject() {
return subject;
}
public String execute() throws Exception {
if (subject != null) {
return SUCCESS;
}
if (hasErrors()) {
System.out.println(username + " | " + password);
System.out.println("error");
return INPUT;
} else {
try {
System.out.println(username + " | " + password);
UsernamePasswordHandler handler = new
UsernamePasswordHandler(username, password);
LoginContext loginContext = new LoginContext("extranet", handler);
loginContext.login();
Subject subject = loginContext.getSubject();
if (subject != null) {
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put("loginContext", loginContext);
return SUCCESS;
} else {
return INPUT;
}
} catch (Exception exception) {
LOG.error(exception);
return INPUT;
}
}
}
}
xwork.xml
=========
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml"/>
<package name="default" extends="webwork-default">
<action name="loginAction" class="com.myproject.action.LoginAction">
<result name="input" type="dispatcher">
<param name="location">login.jsp</param>
</result>
<result name="success" type="dispatcher">
<param name="location">menu.jsp</param>
</result>
<interceptor-ref name="validation"/>
</action>
</package>
</xwork>
LoginAction-validation.xml
==========================
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="Username">
<field-validator type="requiredstring">
<message>Username is required.</message>
</field-validator>
</field>
<field name="Password">
<field-validator type="requiredstring">
<message>Password is required.</message>
</field-validator>
</field>
</validators>
Console output
==============
18:57:13,161 INFO [STDOUT] null | null
18:57:13,162 INFO [STDOUT] error
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork