2016-02-18 2 views
0

Я новичок в распорки2. В перехватчике, как я могу изменить значение поля формы, а затем отправить его в базу данных? Например, когда пользователь вводит значение firstName в форме, тогда, когда он отправляет, я хочу изменить firstName, а затем отправить его в базу данных.Struts2 изменение вид поле используя перехватчик

Вот код моего перехватчика

public class TestInterceptor extends AbstractInterceptor implements Interceptor 
{ 

    @Override 
    public String intercept(ActionInvocation actionInvocation) throws Exception 
    { 

     ValueStack stack = actionInvocation.getStack(); 

     Map<String, Object> params = ActionContext.getContext().getParameters(); 
     Set<String> keys = params.keySet(); 

     System.out.println(keys + " " + stack.size()); 

     /* 
     * for (String key : keys) 
     * { 
     * String[] value = (String[]) params.get(key); 
     * System.out.println(value.length + " , " + value[0]); 
     * } 
     */ 
     Map<String, Object> context = new HashMap<String, Object>(); 
     context.put("firstNames", "Changed"); 
     context.put("firstName", "Changed"); 
     stack.setParameter("firstName", "Changeds"); 
     stack.push(context); 

     String result = actionInvocation.invoke(); 

     return result; 
    } 
} 
+0

Возможный дубликат [Изменение значения параметра запроса в Struts2 перехватчик] (http://stackoverflow.com/questions/30076242/changing-request-parameter-value-in-struts2-interceptor) –

+0

Это не работает в моем случае ... Значение не обновляется –

+0

У меня есть ответ, в моем коде просто мне нужно изменить значение для каждого цикла. не нужно было ставить какой-либо другой контекст –

ответ

0

В коде просто вам нужно изменить значение в карте. нет необходимости ставить какой-либо другой контекст.

Map<String, Object> params = actionInvocation.getInvocationContext().getParameters(); 
params.put("firstName", "Changed"); 
Смежные вопросы