如何在Spring中将变量从java传递给jsp

ali*_*san 4 java spring jsp spring-mvc

在spring框架中我想将一些变量(对象)传递给jsp页面.我可以传递一个对象:

 ModelAndView modelAndView= new ModelAndView("JspPageName", "message", message); 
 return message
Run Code Online (Sandbox Code Playgroud)

但是如何从java向jsp发送多个对象.实际上我知道我可以创建一个对象数组并发送这个数组,但是我想知道这个数据的最佳方法将数据发送到jsp我的代码是这样的:

@Controller
public class DomainEkleController {
    private DomainJDBCTemplate  domainJDBCTemplate;
    private MemurJDBCTemplate memurJDBCTemplate;
    @ModelAttribute("Domain")
    public Domain getDomain()
    {
        return new Domain();
    }

    @Autowired
    @Qualifier("domainJDBCTemplate")
    public void setDomainJDBCTemplate(DomainJDBCTemplate domainJDBCTemplate) {
        this.domainJDBCTemplate = domainJDBCTemplate;
    }

    @Autowired
    @Qualifier("memurJDBCTemplate")
    public void setMemurJDBCTemplate(MemurJDBCTemplate memurJDBCTemplate) {
        this.memurJDBCTemplate = memurJDBCTemplate;
    }

    @RequestMapping(value="/DomainEkle")
    public ModelAndView domainEkle() {

        List<Memur> memurlar=memurJDBCTemplate.getAll();
        System.out.println(memurlar);
        /*for(Memur x:memurlar)
        {
            System.out.println(x.getIsim());
        }*/
        String message = "Hello World, Spring 3.0!";
        ModelAndView domain_ekle= new ModelAndView("DomainEkle", "message", message);
        return domain_ekle;
    }




    @RequestMapping(value="/DomainEkle",method=RequestMethod.POST)
    public ModelAndView domain_eklendi_fonksiyon(@ModelAttribute("Domain")Domain domain,   ModelMap model)
    {




        model.addAttribute("domain_adi", domain.getDomain_adi());
        model.addAttribute("sunucu_no", domain.getSunucu_no());
        model.addAttribute("tarih", domain.getTarih());
        model.addAttribute("ilgili_memur_no",domain.getIlgili_memur_no());

        String message="Domain Kaydi Yapilmistir!";
        ModelAndView dm_eklendi=new ModelAndView("DomainEkle","message",message);

        domainJDBCTemplate.addDomain(domain);
        return dm_eklendi;

      }

}
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 6

你会注意到ModelAndView有一个接受一个的构造函数Map<String, ?>

ModelAndView mav = new ModelAndView("someView", map);
Run Code Online (Sandbox Code Playgroud)

因此,构造一个映射来保存模型属性

 Map<String, Object> map = new HashMap<>();
 map.put("attrib1", someAttrib);
Run Code Online (Sandbox Code Playgroud)

您可以在此映射中放置尽可能多的键值配对对象,并将其传递给构造函数或调用

mav.addAllObjects(map);
Run Code Online (Sandbox Code Playgroud)

添加所有属性的方法.这些属性最终HttpServletRequest会出现在JSP可用的位置.

这最终等同于将ModelModelMap作为参数传递给处理程序方法.与您的domain_eklendi_fonksiyon()方法相同.