JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java & XML、Web Service  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 DWR在MVC架構上執行的問題
lueichun





發文: 29
積分: 0
於 2015-11-17 05:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
就是想請問

我現在寫了一支有用到Spring MVC(用到controller service DAO)跟DWR的程式

但是要用DWR呼叫DAO時就會出現NullPointerException的問題

看起來是DAO沒有被注入物件

但是如果是輸入URL

從Controller進入service再進入DAO

DAO又有被注入物件了

下面是CODE:

Controller:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RestController
public class TestDropDownController {
 
  @Autowired
  TestDropDownService testDropDownService;
  
  @RequestMapping(value="/",method=RequestMethod.GET)
  public ModelAndView queryDropDown(ModelAndView mv)
  {
    List<String> result=testDropDownService.queryTestDropDown();
    mv.addObject("query_result", result);
    mv.setViewName("TestSelect");
    return mv;
  }
}


service:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RemoteProxy(name="queryTestDropDown")
@Service
public class TestDropDownService {
  
  @Autowired
  TestDropDownDAO testDropDownDAO;
  
  @RemoteMethod
  public List<String> queryTestDropDown()
  {
    List<String> list=testDropDownDAO.queryTestDropDown();
    return list;
  }
}


DAO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Transactional
@Repository
public class TestDropDownDAO {
 
  @Autowired
  SessionFactory sessionFactory;
  public List<String> queryTestDropDown()
  {
    Session session=sessionFactory.getCurrentSession();//這種方式取得的session不用關閉
    Query query=session.createQuery("select hostarea from Listener where 1=1");
    List<String> result=query.list();
    
    return result;
  }
}


JSP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>test DWR select option</title>
  <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
  <script type='text/javascript' src='dwr/interface/TestListenerDropDown.js'></script>
  <script type='text/javascript' src='dwr/interface/TestDropDownService.js'></script>
  <script type='text/javascript' src='resources/js/testhostarea.js'></script>
</head>
<body>
  BU:<select id="BU" onChange="getHostAreaDropDown()">  
        
    </select> 
  HostArea:<select id="hostArea">  
    
    </select>  
    
    Region:<select id="Region">  
    
    </select> 
    HostName:<select id="hostName">  
    
    </select> 
    IP:<select id="IP">  
    
    </select> 
</body>
</html>


dwr:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
if(typeof window['DWRUtil']=='undefined')
  window.DWR=dwr.util;
 
onload=function()
{//在前端操作java方法以取得後端資料,並呼叫回呼函數以將後端資料塞給前端DOM物件
  TestListenerDropDown.dropdownBU(setBUDropDown);
}
 
function setBUDropDown(message)
{
  DWR.removeAllOptions();
  DWR.addOptions("BU", message);
}
//操作java方法以取得後端主機地區資料,並寫入前端下拉式選單
function getHostAreaDropDown()
{
  TestDropDownService.queryTestDropDown(setHostAreaDropDown);
}
 
function setHostAreaDropDown(list)
{
  var list_arr=new Array();
  
  for(var i=0;i<list.length;i++)
  {
    array[i]={value:i,text:list[i]};
  }  
  
  DWR.removeAllOptions("hostArea");
  DWR.addOptions("hostArea", array,"value","text");
}


不知道是什麼原因才會這樣呢


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
466 DWR在MVC架構上執行的問題 lueichun 3092 2015-11-17 05:24
» JWorld@TW »  Java & XML、Web Service

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8