2011-03-17 14 views
11

वसंत MVC 3.0स्प्रिंग एमवीसी 3.0 में किसी रूप में एक छिपे हुए मूल्य को कैसे पास किया जाए?

में एक फार्म में एक छिपा मूल्य पारित करने के लिए मैं कैसे <form:hidden path="test" /> का उपयोग कर एक छिपी हुई फ़ील्ड को कोई मान निर्दिष्ट कर पा रहा हूँ। मैं परीक्षण क्षेत्र का मान कैसे सेट कर सकता हूं और इसे सर्वर की तरफ एक्सेस कर सकता हूं।

धन्यवाद

+0

* परीक्षण * आपके कमांड/फॉर्म ऑब्जेक्ट का सदस्य चर है? – Raghuram

+0

हाँ ...यह मॉडल एट्रिब्यूट '

+0

क्या आप अपना कंट्रोलर कोड पोस्ट कर सकते हैं? –

उत्तर

-1

अक्सर लोगों को गलत तरीके से कुछ मूल्यों के रूप में के रूप में छिपा हुआ, पारित क्योंकि वे अन्यथा पिछले मानों पर अद्यतन में उन क्षेत्रों निर्धारित नहीं कर सकते। उदा। अगर मैं फॉर्म में अपडेट करते समय कुछ मान पास नहीं करता हूं, तो वे फ़ील्ड शून्य हो जाते हैं। हालांकि मूल्यों को अपडेट करने का यह गलत तरीका है। वहाँ

@SessionAttributes ("नियम")

कि क्या करना है। अपडेट करने के बाद, आप सत्र के बाद (सत्र स्थिति स्थिति) पैरामीटर और status.setComplete() का उपयोग पूरा करने के लिए सत्र सेट कर सकते हैं। यदि आप कुछ मान प्राप्त करना चाहते हैं जो मॉडल में नहीं हैं तो आप हमेशा request.get पैरामीटर ("yourinputname") का उपयोग कर सकते हैं; यदि का उपयोग कर

$ {somevalueIdontwanttoshow}

आप

इनपुट प्रकार = "छिपा"

कुछ मूल्यों को निर्धारित करने के लिए आप (जावास्क्रिप्ट की तरह कुछ भागों में उपयोग करना चाहते हैं का उपयोग कर सकते

काम नहीं करता है)।

और तुम सच में

बाध्यकारी त्रुटियां देख से पहले छिपा दायर

request.getParameter उपयोग करने का प्रयास तक पहुँचने के लिए ("yourfiedl") चाहते हैं।

0

यह oblibiuos है कि एक छिपा टैग के अलावा आप भी इस कुछ ऐसे स्वरूप में:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 
<form:form action="/someAction" commandName="formBeanName" method="post">] 
    <%-- 
     there you set needed properties 
    --%> 
    <form:hidden path="test" /> 
</form:form> 

सूचना है कि "formBeanName" जावा वर्ग की विशेषता नाम है, कि HttpServletRequest में जमा हो गया था, तो आप सरल कर सकते हैं इसे एक बीन के रूप में उपयोग करें! अपनी गुप्त संपत्ति में सेटर और गेटटर जोड़ने के लिए भी मत भूलना।

<%--Set you secret property there--%> 
<jsp:setProperty name="formBeanName" property="test" value="sercret"/> 

<form:form action="/someAction" commandName="formBeanName" method="post">] 
    <%-- 
     there you set needed properties 
    --%> 
    <form:hidden path="test" /> 
</form:form> 

public class FormBean { 

    //other fileds 

    private String test; 

    public String getTest(){ 
     return this.test; 
    } 

    public String setTest(Strign test){ 
     return this.test = test; 
    } 
} 

पीएस मैं वसंत 3,1

अपडेट के साथ इस परीक्षण किया: इस उदाहरण काम करता है अस्थिर। मुझे पता है क्यों, लेकिन कभी-कभी यह संपत्ति सेट करता है, कहीं नहीं। यदि आपके पास एक जेएसपी में दो वसंत रूप हैं तो यह दृष्टिकोण पहले के लिए संपत्ति सेट कर सकता है और दूसरे या इसके विपरीत सेट नहीं किया जा सकता है। हो सकता है क्योंकि jsp: setProperty वसंत रूपों के टैग के बाद काम करता है, हो सकता है।

3
<form:hidden path="test" style="display:none"/> 
+1

में एक त्रुटि दिखाई देगी, मैंने इसे ऊपर उठाया है, और इसका उपयोग किया है: लेकिन मुझे आश्चर्य है कि पृथ्वी पर यह क्यों काम करता है। यह एक हैक की तरह दिखता है और महसूस करता है! यह स्टाइल बिट के बिना क्यों काम नहीं करता है? – mwarren

संबंधित मुद्दे