Question: who plays david on once upon a time
Answer: Joshua Paul Dallas ( born December 18 , 1978 ) is an American actor .