2 zetal Zetal_ 于 2016.01.17 00:00 提问

新手求大神看看Struts2的preparable接口问题。

跟着尚硅谷的框架整合学的,有一步实在觉得奇怪。

编辑这是前端jsp页面的一个链接。

我在action中加了id这个属性,按道理struts会将这个id值写到action的成员变量id中,并调用input方法,然后这个action实现了preparable接口,于是加上了
public void prepareInput() {
System.out.println(id);
if(id != null){

            model = employeeService.getEmployeeById(id);
            System.out.println(model);
    }

}

public String input() {
request.put("departments", departmentService.getAll());
System.out.println(id);
return INPUT;
}

也就是说会先调用prepareInput()方法,再调用input方法,可是prepareInput无法获得id的值(打印出来显示是null),但input方法里面打印出来是有id的,也就是说只有input被调用时id才会set进来,但是视频里prepareInput中id是可以获取的,这是为什么?

1个回答

devmiao
devmiao   Ds   Rxr 2016.01.17 07:28
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Zetal_
Zetal_ 我主要的问题是为什么在prepare方法中接受到id的值,我实验后是接受不到的,可是视频中接受到了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
struts2 Preparable 接口的使用
问题背景:在一个编辑页面中,如果这个页面中没有将表中所有的字段都用显示表单的形式显示出来,并且提供的修改sql是将所有的字段全部update,那么这个页面中就需要将没有显示出来的字段或者使用lable显示的字段全部使用隐藏域放在编辑页面中,这样做太麻烦了!那么问题来了,有没有更好的解决办法呢? 有,当然有!struts2的Prepare接口很好的解决了这个问题,确切的说struts2中有一个与之相
struts2中action实现Preparable接口
最近在学习struts2,发现了很多惊喜,在设计上,确实很优秀,这两天在研究怎么做出一个好的架构,以后好用。     今天看了包中的showcase例子,发现了一种新的配置action方法: Code highlighting produced by Actipr
struts2的ModelDriven接口和Preparable接口的机制和作用
ModelDriven http://blog.csdn.net/yeshiwu/article/details/52331151Preparable接口 http://40121331qqcom.iteye.com/blog/1140758 http://blog.knowsky.com/200033.htm1.有prepare()方法,实现该接口的action在执行时,首先执行该方法,用于
Struts2的Preparable接口
Struts2的Action在实现com.opensymphony.xwork2.Preparable接口后,就可以重写prepare()方法 此时在Action中,prepare()方法的执行点是在:setXxx()和execute()的执行之前 比如需求:在执行Action的方法前,接收前台隐藏域传过来的值,再根据该值执行相应逻辑 如前台传过来ID,我们根据ID查找数据库对应的用户信息,再
Struts2的学习(5)-使用PrepareInterceptor和Preparable接口
关于PrepareInterceptor 对应的源码分析:com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor public String doIntercept(ActionInvocation invocation) throws Exception { // 获取实例
struts2 Preparable接口
struts2 Preparable接口 使用场景: 如果action针对每次请求都要执行一些相同的业务逻辑, 那么可以实现Preparable接口, 将预处理业务逻辑写在prepare()方法里 Preparable 接口定义: public interface Preparable {     void prepare() throws Exception; }
struts2 的ModeDriven Preparable
paramsPrepareParamsStack在Struts 2.0中是一个很奇妙的interceptor stack,以至于很多人疑问为何不将其设置为默认的interceptor stack。paramsPrepareParamsStack主要解决了ModelDriven和Preparable的配合问题,从字面上理解来说, 这个stack的拦截器调用的顺序为:首先params,然后prepare,接下来modelDriven,最后再params。Struts 2.0的设计上要求mod
Struts2的Preparable接口
Preparable接口 1.有prepare()方法,实现该接口的action在执行时,首先执行该方法,用于进行一些预处理。 2.创建prepareXXX方法,则在执行XXX方法前,将先执行prepareXXX方法 ModelDriven接口 该接口实现将T类中的属性展现到action中,action中不再需要针对T类,写set,get方法 注意p
struts2实现Preparable接口
Preparable接口中有一个void prepare() throws Exception方法,实现该接口的Action类,将在执行这个action所以方法之前执行prepare(),称为action准备方法。   关于struts2的其他事儿   ===============    =============== struts.xml 中的package的name可以随意定
Struts2 Preparable接口
Preparable接口中有一个void prepare() throws Exception方法,实现该接口的Action类,将在执行这个action所以方法之前执行prepare(),称为action准备方法。 也可以按其格式自己写,如一个Action方法为input,则可以实现prepareInput()方法,prepareInput()会在input()方法执行前调用。 关于s