用这种方式,最好的办法是写一个统一的入口文件来处理请求参数
// 常量-- 你的网站action路径
AC_ROOT = '/'
// 处理类
$action = $_REQUEST['action'] $_REQUEST['action'] : 'indexAction';
// 处理方法
$method =$_REQUEST['method'] $_REQUEST['method']: 'index';
// 查看类是否存在
$actoinfile = AC_ROOT $action 'php';
if(file_exists($actoinfile))
{
// 如果存在
require_once($actoinfile);
// 获取此类的对象
$obj = new $action ();
// 查看处理函数是否存在
if (!method_exists($obj , $method)) {
// 方法不存在返回错误
}
// 进入处理流程
$obj->{$method}();
} else {
// 类不存在 返回错误
}
建议: 你可以看看 Thinkphp 等框架 的入口处理方法, 对你应该很有帮助
1、在JS里对中文参数进行两次转码
var
login_name
=
documentgetElementById("loginname")value;
login_name
=
encodeURI(login_name);
login_name
=
encodeURI(login_name);
//一样的写2句,转2次
2、在服务器端对参数进行解码
String
loginName
=
ParamUtilgetString(request,
"login_name");
loginName
=
javanetURLDecoderdecode(loginName,"UTF-8");
试试,我这样自己那能解决问题的
这个不是open 的POST 确定的 实际上action是调用POST 还是GET
决定因素有两个 OPEN参数 和 SEND里边的参数 如果send里有参数 即使OPEN里是get 也一样调用POST 提交。。
POST提交有两种格式
objRequestsetRequestHeader("Content-Type","application/x->
页面编码utf-8
WEB容器(如TOMCAT)编码UTF-8,就能解决问题。添加URIEncoding="utf-8"
例子:
<Connector
port="18080" max>
你写的action里有问题啊
npsetProgramId(npgetProgramId());
npsetProgramName(npgetProgramName());
npsetProject1(npgetProject1());
npsetProject2(npgetProject2());
这怎么能获取到传的值啊。把它改成
npsetProgramId(thisgetProgramId());
npsetProgramName(thisgetProgramName());
npsetProject1(thisgetProject1());
npsetProject2(thisgetProject2());
需要定义一个变量,然后在添加set,get方法。像下面那样
private String ProgramId;
public String getProgramId(){
return ProgramId ;}
public void setProgramId(String ProgramId){
thisProgramId=ProgramId;
}
其他类似,这里我就不写了,很简单的。
像你那样是获取不到值的
以上就是关于php 如何通过url参数来访问类,类似于struts2的action调用。全部的内容,包括:php 如何通过url参数来访问类,类似于struts2的action调用。、java Struts2 url 传参 中文乱码、struts2 接收 ajax post参数的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)