@actionkey 无法映射到指定类中

前端:

<form id="loginform"  action="/Shiro/index" method="post">
<div class="form-group has-feedback">
<input type="text" name="username" clas

后台

()
String index(Model model,HttpServletRequest request, HttpServletResponse response){
    model.addAttribute(, UserUtils.());
    String theme = getTheme(request);
    +theme;
}

前端调用后台ihttp://localhost:8095/Shiro/index 显示404错误,小白不明白难道spring model类与 @actionkey有冲突吗?如何调用index方法,实在无法解决,请版主多多帮忙

评论区

JFinal

2018-08-09 14:29

多年不使用 Spring , 不知道其路由变成啥样了,没法帮到你,建议看看 Spring 的官方文档

lwcompany

2018-08-09 14:44

@jfinal 我的控制器还用jfinal ----controller 但是model用的是spring,这样有冲突吗

lwcompany

2018-08-09 14:45

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import com.jfinal.core.ActionKey;

/**
* Created by liuwei on 2018/3/8.
*/

public class ShiroController extends Controller {
private static final Logger logger = Logger.getLogger(ShiroController.class);
private IUserService iUserService;

JFinal

2018-08-09 15:10

@lwcompany 你的 action 代码如下:
String index(Model model,HttpServletRequest request, HttpServletResponse response){
model.addAttribute(, UserUtils.());
String theme = getTheme(request);
+theme;
}

而 jfinal 的 action 是不可能有这两个参数的 HttpServletRequest request, HttpServletResponse response ,肯定与 jfinal action 无关了

lwcompany

2018-08-09 16:05

3.3 Action带参
从 JFinal 3.2 版本开始,其 jfinal-java8 编译版本已支持Action携带形参,不使用此特性的可以跳过本小节。以下是代码示例:

public class ProjectController extends Controller {
public void index(Project project) {
project.save();
render("index.html");
}
}
Action带参可以代替getPara、getBean、getModel系列方法获取参数,使用UploadFile参数时可以代替getFile方法实现文件上传。这种传参方式还有一个好处是便于与swagger这类第三方无缝集成,生成API文档。

小技巧:如果action形参是一个model或者bean,原先通过getBean(User.class, "") 获取时第二个参数为空字符串或null,那么与之等价的形参注入只需要用一下 @Para("") 注解即可:

public void action(@Para("")User user) { …. }

-------依据手册action 可以带参数,问题是Model 类使用spring包 而不是用 activeRecord 插件,为什么前台找不到这index()方法,还有其它变通方法吗

热门反馈

扫码入社