教学系统二次开发笔记——基于sakai系统

10.2
在assignement中找到list.vm,并且找到日期输出地方搜索后发现输出的地方用的是Calendar.toString()功能,一口气输出日期和AMPM


在AssignmentAction.java中发现有hour-12的情况,修改之同时发现有输出ampm内容,注释掉了

运行结果没有变
——————————————
下一步搜索java Calendar类中的toString怎么输出时间
____________________________
toString是Object类的,看看具体实现是什么样的
___________________________
10.4
中午:
重要的类Calendar并不是sakai的,而是JAVA.UTIL的当然,toString也应该到那里找

10.11
增加一个commondlink控件,希望改变selectonemenu控件值
增加rendered属性决定是否显示,为此authorIndex中增加定义变量
添加onclick属性,试图改变selectonemenu控件值
提供三种可能的链接方法,很想知道hidenlink的作用,为何select会吧ID改成hidenlink的??
!!!改坏了,恢复重新来。。

10.12
添加了getchange函数
但是看不出任何变化

10.13
1.遇到最大问题,改完代码,看不到变化!
2.将selectoneMenu binding到sele上,并通过htmlselectonemenu类型的sele修改选择空间的选项(通过属性itemValue)

为何samigo模块还原了,运行结果还是错误的??
对于htmlselectonemenu而言,有没有相当于setValue之类的方法?

assignment部分:已经把ToStringLocalFull改了内容(在localtime类中的那个)
上面结果没有变化
发现了设置select的方法,用setValue函数

晚上要吧我自己电脑上的SAKAI回复正常。另外实现高级的24小时

10.14
1.重新更新了sakai后,清空webapps,重编译,回复正常
下面改了一下authorIndex的column格式
但是通过局部编译后,竟然组件消失了。
全局编译一次。
可以在还原操作中,局部编译一次居然正确执行了,难道是要关TOMCAT编译?
测试发现,真的是因为TOMCAT开启状态,进行编译,组件会工作不正常。
重新修改了column属性,并按上面方法编译运行,正常,妥妥的~~
2.加个commondLink组件。。
添加按钮成功~~妥妥的~~
3.添加onclick函数,通过setValue设置值,真不知道行不行。。。(==居然可以编译成功)
结果运行出错,提示onclick属性不能用于这里的控件,只能使用onmousedown,用setValue设置不了。
为selectonemenu设置了visible,尝试使用selectedIndex(代码中两个版本一个添加option属性)
【发现了select空间的Value真的是默认的值】
下一步设想:用bean托管,设置setValue功能,并改变默认选项验证上面的发现
visible竟然不可用,换成rendered,
隐藏妥妥的~~~~
可是selectedIndex第一个版本还是不行
除了改成selectIndex第二个版本外,还为selectonemenu换了初始的值依然传值失败。。
直接改用bean的方法,如果编译不通过。。或不成功的话。。
运行失败,好像是select空间与bean绑定失败。更改了绑定格式,再试一次

创建一个inputtext控件试图绑定bean里的值,还是失败了。不知道为什么。

还原正常,并通过.Value访问select控件的值,来修改,同时用了一个button空间一起尝试修改值

【还是想试试用框架修改:这次用value和bean绑定来设置初始值,并尝试通过绑定的value改变选项】
想看能否正确的取值,最简单的就是把取到的值传到outputText里面显示出来!
为什么就是无法动态设置value。。。

终极设想,把select的listen响应直接连到commondLink上

上面这个设想不行:可能是不能直接用changevalue的事件激活

再次尝试通过binding修改text的值

再次binding失败,改用value绑定值

添加了set和get方法后,bind成功,同时能成功传值,但是却激活不了select控件的onchange

直接将空间binding到bean,修改setValue。同时开始研究onchange响应函数的内容:link控件点击后希望能看出insertlinkid值是多少。。

严重的问题,binding到bean失败,无法使用JSF的框架

10.15

回复了系统后,首先创建一个text空间,然后用binding方法改变

他这里激活actionchangelistener

如果text的值可以改变,说明可以改变其他空间的值,只是不能用setValue改变selectOnemenu的值而已

尝试配套使用setvalue和getvalue,看看能否setvalue能否正确传值

惊天发现,居然说我的getclick没有定义


下面尝试setonselect看看什么效果

10.16
将selectListener中的代码直接放到按钮action中。看看能否成功设置outcome的值,然后调用onchange的响应函数,结果指针异常。NULLPOITER
如果手动设置outcome,调用onchange的响应函数时还是跳转到模板页面。
outcome没有执行。。


通过link修改index或者value都可以激活action中相当于listener的工作
但是不能通过他激活hidenlink,要单独点击hidenlink
上面通过getelementById修改值或index好像不能激活ONchange
尝试直接激活
直接激活,1好像会错误的跳到模板页面,2,如果退回来,好像之前设置的outcome就无法执行了
这次我不让他跳转,为何看起来好像都没有激活正确的onchange


希望最后一步是看onchange的click点击的是不是11按钮
终于成功了!!!!!
总结下成功的技术原因:
最后得到的结论是JSF中的JSP不能激活onchange,valuechange等事件
所以需要自己调用!
用一个action替代valuechange事件才支持的setoutcome
并用jsp直接调用onchange事件触发的处理函数,合并工作可以达到原先的效果。
进一步猜想:当我做了这下工作后,selectonmenu空间可以消失了。。。
不对!对select的改变被listener收到了!只需要单独调用onchange处理函数


优化修改的代码:/"..."./
修改toStringlocalFull中的内容


同时用getchange尝试直接激活onchange中激活的onclick

尝试修改tostringlocalfull失败了,暴力修改了vm文件的相关部分

jsf空格的实现是通过内容为“ “的outputtext

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章