Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSH date input in form can not be processed #4

Closed
Ning2018 opened this issue Aug 12, 2018 · 28 comments
Closed

SSH date input in form can not be processed #4

Ning2018 opened this issue Aug 12, 2018 · 28 comments

Comments

@Ning2018
Copy link
Owner

Messages: No result defined for action action.BkinputAction and result input
@Ning2018
Copy link
Owner Author

Struts Problem Report
Struts has detected an unhandled exception:

Messages: No result defined for action action.BkinputAction and result input

Stacktraces

No result defined for action action.BkinputAction and result input
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)

@Ning2018
Copy link
Owner Author

Name:  
Sex:  
CardDate:  
Deposit:  
 

with no cardDate input, the input request can be processed.

@Ning2018
Copy link
Owner Author

In BkinputAction.java

package action;

import java.util.Map;

import org.apache.struts2.interceptor.RequestAware;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import entity.BookCard;
import service.InputBkcardService;

public class BkinputAction extends ActionSupport implements RequestAware, ModelDriven {

/**
 * 
 */
//  private static final long serialVersionUID = 1L;

private Map<String, Object> request;

private BookCard bkcard = new BookCard();

private InputBkcardService inputBkcardService;

public InputBkcardService getInputBkcardService() {
	return inputBkcardService;
}

public void setInputBkcardService(InputBkcardService inputBkcardService) {
	this.inputBkcardService = inputBkcardService;
}

public void setRequest(Map<String, Object> request) {
	this.request = request;
}

public Map<String, Object> getRequest() {
	return request;
}

public String execute() {
	
	try {
		inputBkcardService.addBookCard(bkcard);
		return "success";
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
	return "error";
	
}

@Override
public BookCard getModel() {
	// TODO Auto-generated method stub
	System.out.println(bkcard.getCardDate());
	System.out.println("in bkinputaction:"+bkcard);
	return bkcard;
}

}

@Ning2018
Copy link
Owner Author

With no cardDate input,

the result in console,

null
in bkinputaction:BookCard [id=null, name=null, sex=null, cardDate=null]
session is open:true
Hibernate:
select
max(ID)
from
BOOKCARD
Hibernate:
insert
into
BOOKCARD
(NAME, SEX, CARDDATE, DEPOSIT, ID)
values
(?, ?, ?, ?, ?)
session is closed:true
Hibernate:
select
bookcard0_.ID as ID1_0_,
bookcard0_.NAME as NAME2_0_,
bookcard0_.SEX as SEX3_0_,
bookcard0_.CARDDATE as CARDDATE4_0_,
bookcard0_.DEPOSIT as DEPOSIT5_0_
from
BOOKCARD bookcard0_
session is closed:true

@Ning2018
Copy link
Owner Author

When there is cardDate input,
the result in console,

null
in bkinputaction:BookCard [id=null, name=null, sex=null, cardDate=null]
null
in bkinputaction:BookCard [id=null, name=ZZZ, sex=f, cardDate=null]

@Ning2018
Copy link
Owner Author

for the struts problem,
in struts.xml,

IndexAction // result named "input" /WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

for the struts problem, in struts.xml,

IndexAction // result named "input"; /WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

IndexAction /WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

No description provided.

@Ning2018
Copy link
Owner Author

IndexAction //result named "input"; /WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

No description provided.

@Ning2018
Copy link
Owner Author

<

@Ning2018
Copy link
Owner Author

<action

@Ning2018
Copy link
Owner Author

<action name="BkinputAction"

@Ning2018
Copy link
Owner Author

IndexAction /WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

No description provided.

2 similar comments
@Ning2018
Copy link
Owner Author

No description provided.

@Ning2018
Copy link
Owner Author

No description provided.

@Ning2018
Copy link
Owner Author

action name="BkinputAction" class="BkinputAction"

@Ning2018
Copy link
Owner Author

action name="BkinputAction" class="BkinputAction"
<result name="input" type="redirect" IndexAction
/WEB-INF/jsp/errorpage.jsp

@Ning2018
Copy link
Owner Author

action name="BkinputAction" class="BkinputAction"
result name="input" type="redirect" IndexAction
/result
result name="error" /WEB-INF/jsp/errorpage.jsp
/result
/action

@Ning2018
Copy link
Owner Author

struts xml

@Ning2018
Copy link
Owner Author

current result in console,

in bkinputaction getModel:BookCard [id=null, name=null, sex=null, cardDate=null]
java.util.Date
in convertFromString if arg2==Date.class.
in BookCard.java setCardDate: Fri Nov 11 00:00:00 GMT+08:00 2011
session is open:true
Hibernate:
select
max(ID)
from
BOOKCARD
in BookCard.java getCardDate: Fri Nov 11 00:00:00 GMT+08:00 2011
in session.save, BookCard [id=7, name=111, sex=f, cardDate=Fri Nov 11 00:00:00 GMT+08:00 2011]
in BookCard.java getCardDate: Fri Nov 11 00:00:00 GMT+08:00 2011
in BookCard.java getCardDate: Fri Nov 11 00:00:00 GMT+08:00 2011
Hibernate:
insert
into
BOOKCARD
(NAME, SEX, CARDDATE, DEPOSIT, ID)
values
(?, ?, ?, ?, ?)
session is closed:true
Hibernate:
select
bookcard0_.ID as ID1_0_,
bookcard0_.NAME as NAME2_0_,
bookcard0_.SEX as SEX3_0_,
bookcard0_.CARDDATE as CARDDATE4_0_,
bookcard0_.DEPOSIT as DEPOSIT5_0_
from
BOOKCARD bookcard0_
in BookCard.java setCardDate: 2001-01-01 00:00:00.0
in BookCard.java setCardDate: 2003-03-03 00:00:00.0
in BookCard.java setCardDate: null
in BookCard.java setCardDate: null
in BookCard.java setCardDate: null
in BookCard.java setCardDate: 2011-11-11 00:00:00.0
in BookCard.java setCardDate: 2011-11-11 00:00:00.0
session is closed:true
in BookCard.java getCardDate: 2001-01-01 00:00:00.0
in BookCard.java getCardDate: 2003-03-03 00:00:00.0
in BookCard.java getCardDate: null
in BookCard.java getCardDate: null
in BookCard.java getCardDate: null
in BookCard.java getCardDate: 2011-11-11 00:00:00.0
in BookCard.java getCardDate: 2011-11-11 00:00:00.0

@Ning2018
Copy link
Owner Author

Ning2018 commented Aug 12, 2018

from blogs,
for the struts problem,
when some error occurs in .action, it may go to result name="input".

@Ning2018
Copy link
Owner Author

from blogs,
for the struts problem,
when some error occurs in .action, it may go to result name="input".

@Ning2018
Copy link
Owner Author

package converter;

import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateTypeConverter extends StrutsTypeConverter {

private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
	// TODO Auto-generated method stub
	String dateStr = arg1[0];
	System.out.println(arg2.getTypeName());
	if(arg2==java.util.Date.class){
		System.out.println("in convertFromString if arg2==Date.class.");
		try {
			return dateFormat.parse(dateStr);  // convert string to date
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
//	System.out.println("in convert from string. what? ");
	return null;
}

@Override
public String convertToString(Map arg0, Object arg1) {
	// TODO Auto-generated method stub
	if(arg1==String.class){
		
		Date date = (Date) arg1;
		return dateFormat.format(date);  // convert date to string
	}
	System.out.println("in convert to string.");
	return null;
}

}

@Ning2018
Copy link
Owner Author

if(arg2==java.util.Date.class)
not if(arg2==Date.class)

@Ning2018
Copy link
Owner Author

In DateTypeConverter.java

import java.util.Date;
not import java.sql.Date;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant