আমি স্রেফ জেঙ্গোর সাথে বসন্তের এমভিসির কয়েক বছর ধরে কাজ শুরু করেছি এবং ফর্মগুলি বাস্তবায়ন হরতাকে কিছুটা পাগল বলে মনে হচ্ছে। যদি আপনি পরিচিত না হন তবে জ্যাঙ্গো ফর্মগুলি এমন একটি ফর্ম মডেল শ্রেণীর সাথে শুরু হয় যা আপনার ক্ষেত্রগুলি সংজ্ঞায়িত করে। ফর্ম-ব্যাকিং অবজেক্টের সাথে একইভাবে বসন্ত শুরু হয়। তবে যেখানে স্প্রিং আপনার জেএসপির মধ্যে ব্যাকিং অবজেক্টে বাঁধার ফর্ম উপাদানগুলির জন্য একটি ট্যাগলিব সরবরাহ করে , জ্যাঙ্গোতে ফর্ম উইজেটগুলি সরাসরি মডেলের সাথে আবদ্ধ। ডিফল্ট উইজেট রয়েছে যেখানে আপনি সিএসএস প্রয়োগ করতে আপনার ক্ষেত্রগুলিতে শৈলীর বৈশিষ্ট্যগুলি যুক্ত করতে পারেন বা নতুন ক্লাস হিসাবে সম্পূর্ণ কাস্টম উইজেটকে সংজ্ঞায়িত করতে পারেন। এটি সব আপনার অজগর কোডে চলে যায়। এটা আমার কাছে বাদাম বলে মনে হচ্ছে প্রথমত, আপনি সরাসরি আপনার মডেলটিতে আপনার দৃষ্টিভঙ্গি সম্পর্কিত তথ্য রাখছেন এবং দ্বিতীয়ত আপনি একটি নির্দিষ্ট দৃশ্যে আপনার মডেলকে আবদ্ধ করছেন। আমি কিছু অনুপস্থিত করছি?
সম্পাদনা: অনুরোধ হিসাবে কিছু উদাহরণ কোড।
জ্যাঙ্গো:
# Class defines the data associated with this form
class CommentForm(forms.Form):
# name is CharField and the argument tells Django to use a <input type="text">
# and add the CSS class "special" as an attribute. The kind of thing that should
# go in a template
name = forms.CharField(
widget=forms.TextInput(attrs={'class':'special'}))
url = forms.URLField()
# Again, comment is <input type="text" size="40" /> even though input box size
# is a visual design constraint and not tied to the data model
comment = forms.CharField(
widget=forms.TextInput(attrs={'size':'40'}))
স্প্রিং এমভিসি:
public class User {
// Form class in this case is a POJO, passed to the template in the controller
private String firstName;
private String lastName;
get/setWhatever() {}
}
<!-- JSP code references an instance of type User with custom tags -->
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!-- "user" is the name assigned to a User instance -->
<form:form commandName="user">
<table>
<tr>
<td>First Name:</td>
<!-- "path" attribute sets the name field and binds to object on backend -->
<td><form:input path="firstName" class="special" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td><form:input path="lastName" size="40" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Save Changes" />
</td>
</tr>
</table>
</form:form>