ThinkPHP中URL路径访问与模块控制器之间的关系是ThinkPHP程序开发中非常重要的一个环节。熟练的掌握该技巧对于进一步学习ThinkPHP起着至关重要的作用。具体分析如下:
打开控制器页面:
UserAction.class.php //路径:admin\Lib\Action\ 此处的admin为新建的项目对应的目录
我们都知道在Action里的方法默认为Public属性,私有属性的方法没法访问,但定义私有属性的方法也有其意义所在。
在其中定义私有方法的意义:主要体现在,能够在这里写一个与用户模块相关的方法,但是你又不希望原有方法太过于臃肿,因此,我们可以定义一个私有来实现,如果验证规范发生变化,只需要改这当中的一个方法就行。不用再去找一个大堆的代码当中去找。
示例代码如下:
class UserAction extends Action{ function index(){ echo '这是首页'; } function add(){ $this->verify(); echo '这是向数据库中写入数据的方法'; } private function verify(){ echo '这是验证的方法'; } }
../admin.php/User/add 执行结果:
这是验证的方法这是向数据库中写入数据的方法
希望本文所述对大家ThinkPHP程序设计有所帮助。
我来回答一下吧,题主可能已经学会怎么查找了,但是我写给其他新人,或许能帮助到别人。
一般来说项目中如果用的注解都会要求规范的,controller类的类名会和它上面的@requestMapping注解中的值相同,方法名也会和方法上注解中的值相同。所以你看到的链接的,代表的就是
//ip:端口/…………/类名/方法名?参数1=1&参数2=2……
所以,复制类名,项目中搜索即可只找到。算了,为了小白的阅读体验,我再说一下搜索的方法,利用快捷键“ctrl+shift+r”表示根据类名查找项目中的类,输入类名,这样找最快。
如果找不到那就全局搜索吧,一般项目比较大的情况下用搜索会比较慢。利用快捷键“ctrl+h”或者在菜单那里选择“search”,关键字选择类名,类型选择"*.java",找到类之后再再类里面搜索方法名即可。
既然知道了url,比如:${pageScope.basePath}/manage/book/media/update
${pageScope.basePath}:根目录
manage :项目名称
book :一般是控制器最开始的注解,代表的是一小分类,例如:
update:具体的方法
在以见名知意原则下所书写的代码,页面和控制器是相对应且容易查找的。如多个不同页面公用一个控制器,个人觉得应该在开发说明或开发备注中写清楚
使用IntelliJ IDEA 进入项目双击shift,输入url就出现该方法的位置,
一个东西快弄完了,就剩下一个问题,应该是个小问题。就是mvc项目的欢迎页,怎么给改下呢。
这个项目是通过mvn建立的,整个项目的原型就是spring_mvc_jpa_deom_archetype。框架早早建成,即可看到效果。假如项目名称叫做mvn_mvc,其效果如下:
访问根路径
自动跳转到如下路径
接下来的访问都是带着"spring"这个前缀的
很显然不想带着这个“spring”前缀,改名或干掉,直接位于/ 下
问题就是怎么修改这个默认的路径!
1. 缺省的流程
先看看缺省的根路径流程:
web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问!
//-未指定欢迎页时,缺省等于如下配置。这个应该不同的Web服务器可以设置,但大多数都如此-
而项目目录下,有个index.html文件,进行了跳转: