2012-03-29 34 views
5

Tôi cần sử dụng một số đầu nối thực sự là servlet. Làm thế nào tôi có thể làm điều này trong Grails và những gì về web.xml? Làm thế nào để cấu hình url của servlet?Làm thế nào để sử dụng một servlet trong ứng dụng grails của tôi?

Tôi thực sự có một ứng dụng Spring ở đây và tôi đang cố gắng chuyển đổi nó thành một ứng dụng Grails một phần. Tôi có một servlet kết nối trong ứng dụng lò xo, mà tôi muốn sử dụng ở đây nhưng ánh xạ là phải gọi servlet trong tệp gsp. Tôi có thể làm cái này như thế nào? Về cơ bản, tôi cần biết tệp xml ở đâu trong trường hợp của Grails.

+0

Câu hỏi này là quá board, u cần phải thu hẹp bạn chất vấn một phần cụ thể hơn về những gì don bạn hiểu, những gì bạn đã thử. – Churk

+0

@Churk Cảm ơn churk đã trả lời câu hỏi để cụ thể hơn. –

Trả lời

8

để có được các tập tin web.xml, bạn có thể chạy:

grails install-templates 

Sau đó, các tập tin có thể được tìm thấy trong:

<yourapp>/src/templates/war/web.xml 

chỉnh sửa này như thường lệ để thêm <servlet><servlet-mapping> phần, sau đó đặt mã servlet của bạn vào :

<yourapp>src/java/your/package/structure/WhateverServlet.java 

và bạn sẽ được tốt để đi

+0

Cảm ơn bạn, tôi đã thử điều này nhưng do một số lý do tôi nhận được một tài nguyên 404 không avilable.I không biết tại sao, Và lập bản đồ là hoàn toàn giống như một trong ứng dụng mùa xuân của tôi, nơi cùng một bản đồ hoạt động hoàn hảo. cấu trúc thư mục giống nhau. Tôi đang gọi servlet này trong một javascript từ trang gsp của tôi. Thực tế cùng một trang này là một html trong trường hợp ứng dụng mùa xuân cũ của tôi. –

+0

Đảm bảo đặt bản đồ url của servlet của bạn trước servlet dispatcher grails – vishesh

-3

tin tốt và tin xấu, và bản thân tôi đã đặt câu hỏi này ở đây trước đây. Với ứng dụng mùa xuân, bạn có thể có nhiều cấp độ URI như domain.com/abc/def/efg/abc vs grails có rất nhiều vấn đề với bất kỳ thứ gì ngoài domain.com/controller/view. Đây là một liên kết đến câu hỏi ban đầu của tôi: Grails URL mapping cause error on GSP

Tin tốt là, bạn không cần phải đối phó với ánh xạ XML, grails hiện nó dường như không có bộ điều khiển và quan điểm. Vì vậy, bạn gần như bị giới hạn ở domain.com/YouController/YourView/SomeParamteres ... nhưng nếu đó là tất cả những gì bạn cần, tất cả những gì bạn phải làm là tạo grails-app/Controller/SomethingController.groovy và bạn tự động có domain.com/Something

3

Nếu bạn đang trong một grails-plugin, sau đó bạn có một vị trí được xác định trong phạm vi *GrailsPlugin.groovy của bạn, nơi để làm những việc như vậy. Ví dụ. Nhìn vào tự động đóng cửa tạo:

def doWithWebDescriptor = { xml -> 
    [] 
} 

Tại đây bạn có thể thêm các cấu hình servlet tùy chỉnh của bạn:

def servlets = xml.'servlet' 
    servlets[servlets.size() - 1] + { 
     servlet { 
      'servlet-name'('yourName') 
      'servlet-class'('yourpackage.YourClass') 
     } 
    } 

    def mappings = xml.'servlet-mapping' 
    mappings[mappings.size() - 1] + { 
     'servlet-mapping' { 
      'servlet-name'('yourName') 
      'url-pattern'('/yourPattern/*') 
     } 
    } 
Các vấn đề liên quan