一个已经加上struts2和jsp代码的模板,放在数据库中,不知用什么方案动态解析出来?struts.xml怎么配置?
比如数据库中存的是:
[code="java"]
[/code]
然后ViewAction先读出上面这段,再生成:
[code="java"]
this.content = "hello,world!"
[/code]
那么在显示时,即访问ViewAction时,怎样最终输出的结果是:
[code="java"]
hello,world!
[/code]
我刚才试验了一个方法:
先将存在数据库里面的模板代码生成一个JSP文件,生成在tomcat能访问到的web工程下,然后再交给struts2去解析。
比如
先读取数据库中的模板代码->生成${id}.jsp文件->由struts2解析
我把struts.xml这样配置/${id}.jsp
但是问题是这样动态生成一个文件,默认是读不到的,虽然文件生成的没有错,路径也对,我必须要手工刷新下tomcat,刷新后就能访问到了。请问刷新tomcat这步能由代码完成吗?或者有其它的方案吗?多谢
我的action是固定的,比如叫TestAction。
但我的view是动态生成的,比如传给TestAction的id是1,那么就读取数据库,取出id为1那条记录的html模板,然后将此模板动态生成为1.jsp(里面是有struts2的标签的),然后TestAction再去解析。
我问的是,tomcat在启动时比如没有上面说的1.jsp,然后在运行过程中由TestAction生成了1.jsp,生成的路径等都是没有问题,请问这时让TestAction去解析1.jsp,能实时解析出来吗?
struts.xml这样配的:
[code="java"]
....
/test/${id}.jsp
....
[/code]
我用Eclipse里面跑tomcat尝试,是失败的,文件生成的路径和struts去解析的路径都没问题,但除非在Eclipse里面按f5刷新,否则永远是HTTP 404。
我朋友跟我说,只要在真实的tomcat环境中,动态生成一个jsp文件首先是不要重启的,其次虽说或许不是实时解析,但肯定不需要手工去刷新,或去重新发布之类的。